$teacher = new Person("boring", "12345", 12345); $student = new Person("Alex", "Bagirov", 15);
echo $teacher->isAlive;
public function greet() { return "Hello, my name is " . $this->firstname . " " . $this->lastname . ". Nice to meet you! :-)"; } echo $teacher->greet(); echo $student->greet(); ?>
Почему то система его приняла как верное решение, но в то же время компилятор выводит такую ошибку: Parse error: syntax error, unexpected T_PUBLIC on line 18 В чем тут ошибка? Расскажите еще, пожалуйста, что такое public? Например, перед функциями тут сказали писать public, но особого объяснения его смысла в теории Codecademy я не нашел. Спасибо за помощь.
Ошибка в вашем коде вызвана тем, что вы пытаетесь объявить метод construct и метод greet вне класса Person. В PHP все методы класса должны быть объявлены внутри класса. Переменные и конструктор класса вы объявили правильно, но методы greet и construct должны быть внутри класса Person.
Ключевое слово "public" в PHP используется для определения области видимости свойств и методов класса. Если свойство или метод класса объявлено как public, то оно доступно из любого места вне и внутри класса. Это означает, что можно обращаться к этим свойствам и методам из любой другой части программы.
Правильный код будет выглядеть примерно так:
class Person { public isAlive=true;publicisAlive = true; public isAlive=true;publicfirstname; public lastname;publiclastname; public lastname;publicage; public function __construct(firstname,firstname, firstname,lastname, $age) { $this->firstname = firstname;firstname; firstname;this->lastname = lastname;lastname; lastname;this->age = $age; } public function greet() { return "Hello, my name is " . $this->firstname . " " . $this->lastname . ". Nice to meet you! :-)"; } } $teacher = new Person("boring", "12345", 12345); student=newPerson("Alex","Bagirov",15);echostudent = new Person("Alex", "Bagirov", 15); echo student=newPerson("Alex","Bagirov",15);echoteacher->isAlive; echo $teacher->greet(); echo $student->greet();
Теперь методы __construct и greet объявлены внутри класса Person, и ошибка не должна возникать. Надеюсь, это поможет вам понять принципы ООП в PHP. Если у вас возникнут еще вопросы, не стесняйтесь задать их. Удачи в изучении PHP!
Добрый вечер!
Ошибка в вашем коде вызвана тем, что вы пытаетесь объявить метод construct и метод greet вне класса Person. В PHP все методы класса должны быть объявлены внутри класса. Переменные и конструктор класса вы объявили правильно, но методы greet и construct должны быть внутри класса Person.
Ключевое слово "public" в PHP используется для определения области видимости свойств и методов класса. Если свойство или метод класса объявлено как public, то оно доступно из любого места вне и внутри класса. Это означает, что можно обращаться к этим свойствам и методам из любой другой части программы.
Правильный код будет выглядеть примерно так:
class Person {public isAlive=true;publicisAlive = true;
public isAlive=true;publicfirstname;
public lastname;publiclastname;
public lastname;publicage;
public function __construct(firstname,firstname, firstname,lastname, $age) {
$this->firstname = firstname;firstname;
firstname;this->lastname = lastname;lastname;
lastname;this->age = $age;
}
public function greet() {
return "Hello, my name is " . $this->firstname . " " . $this->lastname . ". Nice to meet you! :-)";
}
}
$teacher = new Person("boring", "12345", 12345);
student=newPerson("Alex","Bagirov",15);echostudent = new Person("Alex", "Bagirov", 15);
echo student=newPerson("Alex","Bagirov",15);echoteacher->isAlive;
echo $teacher->greet();
echo $student->greet();
Теперь методы __construct и greet объявлены внутри класса Person, и ошибка не должна возникать. Надеюсь, это поможет вам понять принципы ООП в PHP. Если у вас возникнут еще вопросы, не стесняйтесь задать их. Удачи в изучении PHP!