О соглашении об именах подчеркивания в PHP (как в «_method» или «_property») - PullRequest
21 голосов
/ 23 апреля 2011

Это своего рода общий вопрос, который меня интересует. Я заметил многое из этого в коде других людей и никогда не знал истинную причину, просто следовал тенденциям, и так далее.

Почему некоторые методы и свойства названы с подчеркиванием перед, а другие нет? Например, когда конкретно будет использоваться function _method(), а когда - function method(), или, другими словами, private $_someVariable против private $someVariable?

Ответы [ 4 ]

22 голосов
/ 23 апреля 2011

В большинстве случаев это PHP-соглашение о возврате, которое не поддерживало видимость свойств или методов, и разработчики библиотек использовали _ для обозначения чего-то, что следует рассматривать как закрытое, а не доступ к нему извнеучебный класс.PHP5 действительно имеет видимость, но соглашение все еще часто поддерживается.

12 голосов
/ 30 сентября 2013

Теперь, в 2013 году, это «официально» плохой стиль согласно руководству по кодированию PSR-2:

Имена свойств НЕ ДОЛЖНЫ иметь префикс с одним подчеркиванием для обозначения защищенной или приватной видимости`

Источник: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

7 голосов
/ 04 июля 2017

*** Следуйте указаниям по кодированию PSR-2:

Имена свойств НЕ ДОЛЖНЫ иметь префикс с одним подчеркиванием для обозначения защищенной или частной видимости`

Источник: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

*** Причина:

Нет подчеркиваний перед именем свойства, например, $ _income, вместо этого используйте $ доход.Подчеркивание использовалось в некоторых средах и может быть перепутано с магическими переменными PHP.

Источник: http://www.geekgumbo.com/2013/05/19/psr-2-coding-style-guide/

1 голос
/ 11 апреля 2015

Это официальный документ от php.net , не говоря уже о символе подчеркивания перед private методами, private полями.

Но следуйте Соглашению о кодировании Zend Framework :

Для методов на объектах, которые объявлены с private или protected модификатор, первый символ имени метода должен быть подчеркивание Это единственное приемлемое применение подчеркивание в имени метода. Методы, объявленные «публичными», никогда не должны содержать подчеркивание.

Поэтому мы должны начать именовать метод private с подчеркивания:)

Примечание:

PHP резервирует все символы, начинающиеся с __, как магические. это рекомендуется не создавать символы, начинающиеся с __ в PHP если вы не хотите использовать документированные магические функции.

(Источник: http://php.net/manual/en/userlandnaming.rules.php)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...