$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; public $firstname; public $lastname; public $age; public function __construct($firstname, $lastname, $age) { $this->firstname = $firstname; $this->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 = new Person("Alex", "Bagirov", 15); echo $teacher->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;
public $firstname;
public $lastname;
public $age;
public function __construct($firstname, $lastname, $age) {
$this->firstname = $firstname;
$this->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 = new Person("Alex", "Bagirov", 15);
echo $teacher->isAlive;
echo $teacher->greet();
echo $student->greet();
Теперь методы __construct и greet объявлены внутри класса Person, и ошибка не должна возникать. Надеюсь, это поможет вам понять принципы ООП в PHP. Если у вас возникнут еще вопросы, не стесняйтесь задать их. Удачи в изучении PHP!