Должен ли я пространство имен глобальных функций в PHP? - PullRequest
13 голосов
/ 15 марта 2012

В PHP я использую пространства имен на уровне класса.Тем не менее, Netbeans продолжает говорить мне о пространстве имен и моих глобальных функций.Например, если я наберу

str_replace('stuff');

, то Netbeans предложит изменить его на:

\str_replace('stuff');

Это рекомендация PHP или просто переусердствовать в Netbeans?Я не смог найти ничего в документации PHP, которая бы так или иначе говорила.

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

Ответы [ 3 ]

5 голосов
/ 15 марта 2012

Нет такой рекомендации в

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

С учетом вышесказанного, единственная причина добавить идентификатор - это сделать его более явным, если вы хотите использовать реальную глобальную вещь для предотвращения случайных изменений поведения кода, когда кто-то добавляет функцию с тем же именем в текущее пространство имен.

Возможно, вы захотите запросить в Списке рассылки Netbeans дополнительную информацию о том, почему ваша IDE предлагает это.

1 голос
/ 15 марта 2012

Конечно, слишком усердно, но я не могу воспроизвести это Netbeans 7.0.1 с PHP Plugin 1.17.1. Во всяком случае, это не конвенция, и я бы вообще не считал ее лучшей практикой.

0 голосов
/ 16 марта 2012

Netbeans просто не следует задокументированным правилам разрешения пространств имен , как задокументировано :

  1. глобальные классы (например, DateTime) должны быть квалифицированы иначе, PHP будет искать этот классв текущем пространстве имен.
  2. глобальные функции (например, array_filter) и константы будут найдены в глобальном пространстве имен (без явной квалификации), если они не существуют в текущем пространстве имен.

Другими словами, ваш код должен считаться идиоматическим на основе документированных правил.

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