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