Что такое 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
248 +1
0
Ответы
1

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

Ошибка в вашем коде вызвана тем, что вы пытаетесь объявить метод construct и метод greet вне класса Person. В PHP все методы класса должны быть объявлены внутри класса. Переменные и конструктор класса вы объявили правильно, но методы greet и construct должны быть внутри класса Person.

Ключевое слово "public" в PHP используется для определения области видимости свойств и методов класса. Если свойство или метод класса объявлено как public, то оно доступно из любого места вне и внутри класса. Это означает, что можно обращаться к этим свойствам и методам из любой другой части программы.

Правильный код будет выглядеть примерно так:

class Person {
public isAlive=true;publicisAlive = true;
public
isAlive=true;public
firstname;
public lastname;publiclastname;
public
lastname;public
age;
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);echo
teacher->isAlive;
echo $teacher->greet();
echo $student->greet();

Теперь методы __construct и greet объявлены внутри класса Person, и ошибка не должна возникать. Надеюсь, это поможет вам понять принципы ООП в PHP. Если у вас возникнут еще вопросы, не стесняйтесь задать их. Удачи в изучении PHP!

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир