Почему ошибка при отсутствии необязательного модификатора доступа в классе 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
164 +1
0
Ответы
1

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

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