Должен ли я использовать глобальные функции PHP?

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

str_replace('stuff');

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

\str_replace('stuff');

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

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

Ответ 1

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

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

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

Вы можете запросить в список рассылки Netbeans для получения более подробной информации о том, почему ваша среда ID предлагает это.

Ответ 2

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

Ответ 3

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

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

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