Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/04/2003, 10:19
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

fmmeson, siento decirte que estas equivocado. En PHP todas las cadenas de texto tienen que ir delimitadas con comillas, ya sean simples o dobles. Por lo que tus case deben ir con comillas. Es un error, y si configuras PHP para que te muestre todos los mensajes (E_ALL), veras que en cada case salta un Notice indicando el error.

En PHP una cadena sin comillas es un identificador de constante, el nombre de una constante definida con define().

Lo que pasa es que PHP es muy listo. Le pones la cadena sin comillas y piensa que es una constante. Pero al no encontrarla dentro de su lista de constantes definidas, PHP le da el valor de la propia cadena. Por eso funciona. Porque PHP hace internamente esa sustitucion. Pero nadie asegura que sirva para siempre.

Ademas, imaginate que has definido la constate juegos con el valor 'canicas'. Entonces el case juegos: solo se ejecutara en el caso de que la variable del switch valga 'canicas'.

Lo mismo pasa cuando usas cadenas como indices de arrays asociativos. Deben ir con comillas.

Saludos.

PD: que funcione no quiere decir que sea correcto.
__________________
Josemi

Aprendiz de mucho, maestro de poco.