Simple no es lo mismo que doble, por PHP
8 de March, 2009. Escrito por [Q]boss en Libros, PHP + MySQL, Recursos

Pues llevaba yo varios días dando vueltas a en qué se diferenciaba un código que me permitía escribir saltos de línea en un fichero, con otro que no lo hacía. El tema estaba enfocado en el caracter (\n) que es el que se emplea para tal tarea.
La cuestión era que en dos lugares diferentes pero aparentemente iguales, el resultado era distinto… y no hay nada como buscar en inglés por google (qué lastima que sea así la cruda realidad) para dar con resultados mucho más prácticos.
Me entero que las comillas simples no son igual que las dobles (yo casi siempre usaba las simples para no tener conflictos con los atributos HTML, que en principio suelen escribirse con dobles), y que tienen diferencias que pueden afectar a los resultados, como ha sucedido en este caso.
La comilla simple (’) lo que hace es mostrar LITERALMENTE lo que hay entre su apertura y cierre como caracteres de texto. La comilla doble (”) no hace lo mismo, sino que lanza su interior como una cadena que puede contener caracteres que se transforman en otra cosa, es decir, no saca LITERALMENTE lo que hay en su interior.
La prueba, que un ‘\n’ no es un salto de línea, pero un “\n” sí lo es dentro de un fichero de texto.
El resultado a mi consulta aqui:
No es lo mismo simple que doble [EN]
Y de regalo un gran recurso que me acabo de encontrar para aprender PHP:
Practica PHP Programming Wiki [EN]
Comments
7 Responses to “Simple no es lo mismo que doble, por PHP”
Leave a Reply
$str = ‘no es’;
echo “Como bien dices $str lo mismo :)”;
Te veo lanzado cada dia más cerca de ser un auténtico ciborg XD primero la edad en binario, ahora comentarios en blogs programados en PHP… Joan tienes que venirte a Asturias a descansar un poquito
Ya me podía volver loco… esto me pasa por andar repartiendo donde no me llaman…
Nos vemos el lunes creo no? Abrazo!
Joan no está, soy su “él” digital :p
Nos vemos el lunes Mr.Q
Un abrazo!
Una prueba:
$cadena1=”un texto”;
$cadena2=”esto es ‘$cadena1′”;
echo $cadena2;
¿Qué devolverá?
esto es ‘un texto’
Hay que añadir entonces que:
no saca LITERALMENTE lo que hay en su interior incluido el contenido en comillas simples
Ese pequeño añadido me tuvo la semana pasada haciendo el ridículo
A mi personalmente no me mola que PHP permita esto:
$test=” de”;
echo “cadena$test prueba”;
Me gustaría que obligara a usar operadores de concatenación, y el comportamiento del ejemplo que has puesto va más por ahi que por el hecho de respetar las comillas. Porque claro, mezclando comillas de diferentes tipos para evitar usar el slash la cosa aun se pone peor XD