Должны ли быть объявлены функции и переменные public
или они public
по умолчанию?
Class Bread {
$bread = "";
function toast()
{
$bread = "Toasticles!"}
}
В этом примере оба $bread
и функция toast()
общественность, фактически не объявляя их как таковые?
Это вопрос о переменных экземпляра и видимости функции
Если вы объявите $bread
без видимости ты будут получить ошибку разбора:
Ошибка разбора: синтаксическая ошибка, неожиданный ‘$ bread’ (T_VARIABLE), ожидающая функция (T_FUNCTION) или const (T_CONST) в […] […] онлайн Икс
Это потому, что, как уже упоминалось @darkcrystale и как Состояния документации PHP, Свойства класса должны быть определены как публичные, частные или защищенные. Если объявлено с использованием var, свойство будет определено как public.
функция toast()
будет public
по умолчанию, если вы не указали видимость явно.
Но имейте в виду, что делать вещи явно лучше, чем делать вещи безоговорочно. Таким образом, объявление публичности в каждом случае может помочь тем, кто читает ваш код после вас. Если вас не волнуют те, кто может работать с вашим кодом (кстати, вам стыдно в этом случае), подумайте о другом примере: вы пишете много кода, явно не объявляющего видимость, и это public
в это время. Но если разработчики PHP сойдут с ума и изменить видимость по умолчанию на private
, тогда большая часть вашего кода становится бесполезной (и не будет работать) по понятным причинам.
Согласно PHP документация
Свойства:
Свойства класса должны быть определены как публичные, частные или защищенные. Если объявлено с использованием var, свойство будет определено как публичное.
Методы:
Методы, объявленные без какого-либо явного ключевого слова видимости, определяются как публичные.