Должен ли я использовать глобальные функции 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) и константы будут найдены в глобальном пространстве имен (без явной квалификации), если они не существуют в текущем пространстве имен.
Другими словами, ваш код должен считаться идиоматическим на основе документированных правил.