Это не считается OK - даже если в большинстве случаев это будет работать.
В основном, когда PHP видит это:
echo $array[key];
Он будет искать константу, определенную с помощью define
, называемой key
- и, если ее нет, если будет принимать 'key'
значение.
Но, если в вашем коде есть что-то подобное ранее:
define('key', 'glop');
Это не займет
echo $array['key'];
больше; вместо этого он будет использовать значение key
константы - и ваш код будет таким же, как:
echo $array['glop'];
В конце концов, не ставить кавычки вокруг имени ключа плохо по крайней мере по двум причинам:
- Существует риск того, что не будет делать то, что вы ожидаете - что очень плохо
- Может, сегодня ...
- А как насчет следующей недели / месяца / года?
- Возможно, однажды вы
define
будете константой с неправильным именем; -)
- Это не хорошо для производительности:
- он должен искать константу перед использованием
'key'
- И, как сказано в комментарии, он генерирует уведомления (даже если вы отключите
error_reporting
и display_errors
, уведомления / предупреждения / ошибки по-прежнему генерируется, даже если позднее будет удалено)
Итак: вы не должны слушать этого парня по этому вопросу: он не прав: это имеет значение .
И если вам нужны «доказательства», которые «лучше», чем то, что люди могут рассказать вам о stackoverflow, вы можете указать ему на этот раздел руководства в качестве ссылки: Почему $ foo [bar] не так