Почему ошибка при отсутствии необязательного модификатора доступа в классе PHP?
Методы класса должны быть определены через модификаторы public, private, или protected. Методы, где определение модификатора отсутствует, определяются как public.
Внимание, вопрос: ниже вы объявляете метод или, все-таки, свойство?class A{
   public $attribute = 5;
}
Могу ошибаться, но документация говорит лишь о методах класса, а свойства в них не входят.
Потому, если вы укажете class A {
function foo(){
// код метода
}
}
То он будет определен как public, а для свойств надо явно указывать, т.е. class A {
public $foo;

}