Почему ошибка при отсутствии необязательного модификатора доступа в классе 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 (который по умолчанию) } Мне кажется, что я где-то что-то упустил и не понимаю. Тут же явное противоречие с документацией. Заранее спасибо!
Ошибка возникает из-за того, что в PHP все свойства класса должны иметь модификатор доступа (public, private, protected), а в вашем первом примере вы забыли указать модификатор. В случае если модификатор доступа не указан, PHP не сможет определить, какой именно уровень доступа должен быть у свойства, что приводит к ошибке. Поэтому, чтобы избежать ошибок, всегда стоит явно указывать модификатор доступа для свойств и методов класса.
Ошибка возникает из-за того, что в PHP все свойства класса должны иметь модификатор доступа (public, private, protected), а в вашем первом примере вы забыли указать модификатор.
В случае если модификатор доступа не указан, PHP не сможет определить, какой именно уровень доступа должен быть у свойства, что приводит к ошибке.
Поэтому, чтобы избежать ошибок, всегда стоит явно указывать модификатор доступа для свойств и методов класса.