No se considera OK, incluso si funciona en la mayoría de los casos.
Básicamente, cuando PHP ve esto:
echo $array[key];
Se buscará una constante, definida con define
, llamado key
- y, si no hay ninguno, si tomará el valor 'key'
.
Pero, si hay algo como esto antes en su código:
define('key', 'glop');
no va a tomar
echo $array['key'];
más; en cambio, que va a utilizar el valor de la constante key
- y su código será el mismo que:
echo $array['glop'];
Al final, no poner comillas arround el nombre de la clave es malo para al menos dos razones:
- Existe el riesgo de que no va a hacer lo que se espera - que es muy malo
- Podría, hoy ...
- ¿Pero qué pasa con la próxima semana/mes/año?
- Tal vez, un día, se le
define
una constante con el nombre equivocado ;-)
- No es bueno para el rendimiento:
- tiene que buscar una constante, antes de usar
'key'
- y, como se dijo en un comentario, se genera avisos (incluso si se desactiva
error_reporting
y display_errors
, los avisos/advertencias/errores se siguen generando, incluso si descarta más adelante)
Por lo tanto: no se debe escuchar a ese tipo en este punto: él está equivocado: sí importa.
Y si necesita un poco de "prueba" de que es "mejor" que lo que la gente le puede decir en stackoverflow, se le puede indicar a esta sección del manual, como referencia: Why is $foo[bar] wrong?
¿Quizás su colega quiso decir que no importa si se usan comillas simples o dobles? Porque eso sería más o menos cierto (excepto que las variables no se analizan en comillas simples). –