Что такое public и почему не работает функция PHP? Добрый вечер!
Я прохожу ООП в PHP на CodeCademy.
У меня получился вот такой код:

Reconstructing the Person Class





firstname = $firstname;
$this->lastname = $lastname;
$this->age = $age;
}

$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 я не нашел. Спасибо за помощь.

21 Авг 2019 в 07:08
227 +1
0
Ответы
1

Добрый вечер!

Ошибка в вашем коде вызвана тем, что вы пытаетесь объявить метод 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!

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 017 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир