Почему ошибка при отсутствии необязательного модификатора доступа в классе PHP? Здравствуйте!
Вот цитата из документации:
Методы класса должны быть определены через модификаторы public, private, или protected. Методы, где определение модификатора отсутствует, определяются как public.
Тогда почему так нельзя:class A{
$attribute = 5; //без модификатора доступа public (который по умолчанию)
}
- выдается следующее предупреждение:
Parse error: syntax error, unexpected '$attribute' (T_VARIABLE), expecting function (T_FUNCTION) in C:\OpenServer\domains\comet\php.php on line 4
В то время как код с явкным указанием модификатора доуступа упешео справляется со своей задачей:class A{
public $attribute = 5; //без модификатора доступа public (который по умолчанию)
}
Мне кажется, что я где-то что-то упустил и не понимаю. Тут же явное противоречие с документацией.
Заранее спасибо!

21 Авг 2019 в 07:00
149 +1
0
Ответы
1

Ошибка возникает из-за того, что в PHP все свойства класса должны иметь модификатор доступа (public, private, protected), а в вашем первом примере вы забыли указать модификатор.
В случае если модификатор доступа не указан, PHP не сможет определить, какой именно уровень доступа должен быть у свойства, что приводит к ошибке.
Поэтому, чтобы избежать ошибок, всегда стоит явно указывать модификатор доступа для свойств и методов класса.

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