инкапсуляция — Должны ли функции и переменные быть объявлены публичными?

Должны ли быть объявлены функции и переменные public или они public по умолчанию?

Class Bread {
$bread = "";
function toast()
{
$bread = "Toasticles!"}
}

В этом примере оба $bread и функция toast() общественность, фактически не объявляя их как таковые?

Это вопрос о переменных экземпляра и видимости функции

0

Решение

Если вы объявите $bread без видимости ты будут получить ошибку разбора:

Ошибка разбора: синтаксическая ошибка, неожиданный ‘$ bread’ (T_VARIABLE), ожидающая функция (T_FUNCTION) или const (T_CONST) в […] […] онлайн Икс

Это потому, что, как уже упоминалось @darkcrystale и как Состояния документации PHP, Свойства класса должны быть определены как публичные, частные или защищенные. Если объявлено с использованием var, свойство будет определено как public.

функция toast() будет public по умолчанию, если вы не указали видимость явно.

Но имейте в виду, что делать вещи явно лучше, чем делать вещи безоговорочно. Таким образом, объявление публичности в каждом случае может помочь тем, кто читает ваш код после вас. Если вас не волнуют те, кто может работать с вашим кодом (кстати, вам стыдно в этом случае), подумайте о другом примере: вы пишете много кода, явно не объявляющего видимость, и это public в это время. Но если разработчики PHP сойдут с ума и изменить видимость по умолчанию на private, тогда большая часть вашего кода становится бесполезной (и не будет работать) по понятным причинам.

1

Другие решения

Согласно PHP документация

Свойства:

Свойства класса должны быть определены как публичные, частные или защищенные. Если объявлено с использованием var, свойство будет определено как публичное.

Методы:

Методы, объявленные без какого-либо явного ключевого слова видимости, определяются как публичные.

2

По вопросам рекламы [email protected]