Есть ли причина использовать ключевое слово «public» перед именами переменных метода и члена?

Я читал, что методы и переменные-члены являются общедоступными по умолчанию в PHP, но многие примеры кода, на которые я смотрю, имеют public ключевое слово впереди. Например:

 class SomeClass { public $data; public function someFunction() { } } 

Есть ли причина использовать ключевое слово public перед именами методов и членов в PHP или ясность – единственная причина, по которой некоторые люди это делают?

Есть ли причина использовать ключевое слово public перед именами методов и членов в PHP или ясность – единственная причина, по которой некоторые люди это делают?

Причина в ясности.

Люди кодируют этот материал. Людям нужно читать это. И если человек не может быстро расшифровать то, что происходит, отсутствие ясности может вызвать больше проблем.

Это связано с тем, что мы также отформатируем и отформатируем код. Переводчик языка будет съедать любой код, если синтаксис правильный. Все остальное, включая комментарии, помещается туда, так что куски мяса перед клавиатурой могут действительно иметь некоторое представление о том, что происходит.

Используя пример псевдокода:

 class SomeClass { public $data; public function someFunction() { } } 

Посмотрите, как легко это прочитать и понять, как это работает! Для сравнения, посмотрите на это:

 class cName { $d; function fName() {} } 

Технически говоря, оба фрагмента кода должны работать одинаково. Но что такое $d ? И что такое cName ? А что такое fName ? Код будет работать в обоих случаях, но кто хочет провести какое-то время, распутывая второй пример. Я имею в виду, это работает, правильно?

Ясность – настоящий ключ к хорошему кодированию и разработке. Это мировое программирование и компьютерная работа невидимы, а иногда – тупые, как есть. Нет причин скрывать, как что-то работает, просто игнорируя тот факт, что люди, а не машины, создают код.

Нет никакой функциональной разницы между указанием «public» и «нет». Из-за этого нет никакой пользы для кода, и из-за этого нет никакой деградации.

Просто помните, что ваш код записывается для двух объектов: компилятора и для людей, которым необходимо поддерживать код. Эта ясность огромна.

Мое личное мнение состоит в том, что лучше быть явным. Нет двусмысленности. Я также считаю, что все переменные-члены должны быть либо защищены, либо приватными с соответствующими геттерами / сеттерами.

Он также помогает в документации вашего кода – например, DOxygen