¿Cuándo se escriben los caracteres entre comillas simples en SQL? ¿Cuándo utilizar comillas dobles? ¿Cuál es la diferencia entre comillas dobles y comillas simples?
En PHP, las cadenas generalmente se definen con un par de comillas, por ejemplo:
'Soy una cadena entre comillas simples'
"Soy un comillas dobles Cadenas entre comillas"
El analizador PHP utiliza pares de comillas para determinar una cadena. Por lo tanto, todas las cadenas deben utilizar el mismo sencillo o doble.
Comillas para definir el principio y el final. Por ejemplo, la siguiente definición de cadena es ilegal:
"No soy una cadena válida porque tengo comillas no coincidentes"
¡Yo tampoco! "
Al definir una cadena, solo se utiliza un tipo de comillas como delimitador, es decir, comillas simples o comillas dobles. Por lo tanto, si una cadena está entre comillas dobles
No, entonces el analizador solo analiza las comillas dobles. De esta manera, puede incluir cualquier otro carácter en la cadena entre comillas dobles, incluso las comillas simples.
Las siguientes comillas $s = "I. soy una 'cadena de comillas simples' dentro de una cadena de comillas dobles";
$s = 'Soy una 'cadena de comillas dobles' dentro de una cadena de comillas simples;
Cuando PHP encuentra una comilla correspondiente al comienzo de una cadena, piensa que ha llegado al final de la cadena, entonces:
"¿Por qué 'esto' no funciona? "
En realidad, el analizador PHP lo divide en tres partes:
"¿Por qué no"? - una cadena entre comillas dobles que contiene comillas simples
Esto ¿Funcionan los caracteres adicionales que el analizador no puede manejar
"? ” - cadena ordinaria
El ejemplo anterior intenta incluir comillas dobles dentro de una cadena entre comillas dobles, y el analizador considerará la vinculación de cadenas cuando encuentre la segunda comilla doble.
Es un empate Para lograr el propósito de incluir comillas, el analizador debe ignorar el significado original de las comillas ordinarias en la cadena. Agregamos una barra invertida antes para indicarle a PHP que la cita es parte de una cadena, la representación correcta es la siguiente:<. /p>
"¿Por qué "eso" no funciona? ”
Un problema común en las cadenas en inglés es el uso de apóstrofes, que son muy comunes en las cadenas en inglés ya que es una comilla simple.
(Tienes que ser posesivo en inglés). cuidado con estos caracteres:
Será mejor que evites los apóstrofes
Puedes ver que la barra invertida tiene un significado especial en las cadenas cuando la necesitamos al incluir la barra invertida en la cadena. , necesitamos una barra invertida antes del símbolo
Por ejemplo:
$ file = "c:\windows\system.ini ;
echo $". file//El resultado de la impresión es: c: windowssystem.ini
$ file = "c:\\windows\\system.ini";
echo $ file//El El resultado impreso es: c:\windows\system.ini.
Otra forma de definir una cadena puede ahorrarle la molestia de los caracteres especiales y también es conveniente citar textos largos. p>
Par legal
Segundo, concatenación de cadenas
Las cadenas se pueden pasar a través del operador de concatenación de cadenas (.
), como por ejemplo:
$ first_name = ' Charlie
$ last_name = ' Brown
$full_name = $first_name. ' ' .$ apellido
Un uso común es crear grandes fragmentos de código de cadena HTML, y los signos de asignación (=) y los conectores (.) se pueden abreviar y combinar en símbolos (.=).
Número, como por ejemplo:
$ html = 'lt table gt'
$html.
$ cuadrado = $i * $i
$html. = 'lttr gt lt"td gt". $i.'lt/TD gt;lt"td gt". $ al cuadrado. lt/TD gt; lt/tr gt;';
}
$html. = 'lt/tablegt;'
En tercer lugar, usar variables en cadenas
Esta función le permite pegar grandes cantidades de cadenas simples sin usar símbolos de concatenación. PHP nos permite incluir palabras directamente entre comillas dobles.
Variables de cadena, podemos encontrar que los resultados del procesamiento de las siguientes dos cadenas son los mismos.
$full_name = $first_name. ' ' .$ apellido
$ nombre_completo = " $ nombre_primero $ apellido_nombre ";
La diferencia entre cadenas de comillas simples y cadenas de comillas dobles en PHP el procesamiento es diferente. El contenido de las cadenas entre comillas dobles se puede interpretar y reemplazar, mientras que el contenido de las cadenas numéricas entre comillas simples siempre se trata como caracteres normales. Por ejemplo:
$foo = 2;
echo "foo es $foo"; //Imprimir resultado: foo es 2
echo 'foo es $ foo' ';//Imprimir resultado: foo es $foo
echo "foo es $foo \n"; //Imprimir resultado: foo es 2 (salto de línea al mismo tiempo)
echo "foo is $foo\n"; //Imprimir resultado: foo es $foo\n
Como puede ver, incluso la barra invertida en la cadena entre comillas simples ha perdido su significado extendido. (excepto para insertar la barra invertida e insertar comillas simples \ \ '). Por lo tanto, debes usar comillas dobles cuando quieras reemplazar una variable en una cadena e incluir secuencias de escape como \n (nueva línea).
Número. Las cadenas entre comillas simples se pueden usar en cualquier otro lugar; será más rápido usar cadenas entre comillas simples en los scripts porque el analizador PHP es correcto.
El método de procesamiento de cadenas entre comillas simples es relativamente simple, mientras que el procesamiento de cadenas entre comillas dobles es más complicado porque debe analizarse dentro de la cadena, por lo que es más rápido.
La temperatura es un poco más lenta.
Pueden surgir algunos problemas al hacer referencia a combinaciones complejas de variables en cadenas, el siguiente código funcionará bien:
echo " value = $ foo
echo " value = $ a[$ I]";
Pero el siguiente código no puede obtener el resultado deseado:
echo " value = $ a[$ I][$ j]"; / /Queremos imprimir un elemento del array bidimensional $a.
Para evitar posibles problemas con el uso de estas cadenas, normalmente separamos las variables complejas de la cadena, así:
Echo "value=". $a[$I][$j];
Otro enfoque es encerrar variables complejas entre llaves para que el analizador pueda reconocerlas correctamente:
Echo "value = {$a [$i][$j]}" //Imprime un elemento del array bidimensional $a.
De esta manera, apareció un nuevo problema. Cuando queramos citar el carácter de llave en una cadena, debemos recordar usar el carácter de escape:
$ var = 3
echo " value = { $ var } //Imprime el resultado "valor = 3"
echo "valor = \{$var}//Imprime el resultado "valor = {3}"
Tercero, barra diagonal y SQL declaración
Al escribir programas PHP, generar código HTML o declaraciones de consulta SQL es algo común e interesante. ¿Por qué dices eso?
Debido a que esto implica generar otro tipo de código, la sintaxis y las reglas para escribir este código deben considerarse y seguirse cuidadosamente.
Entonces.
Veamos un ejemplo. Si desea consultar al usuario llamado "O'Keefe" en la base de datos, generalmente lo hace en forma de declaración SQL.
La cuestión es esta:
seleccione * de los usuarios donde apellido_ nombre = 'O\' Keefe'
Tenga en cuenta que el caso posesivo inglés de La declaración SQL (apóstrofe) debe tener como carácter de escape una barra invertida. PHP proporciona algunas funciones específicamente para manejar este problema.
, la función AddSlashes($str) se utiliza para insertar automáticamente caracteres de escape de barra invertida en la cadena:
$ last _ name = " O 'Keefe
$ SQL = "seleccione * de los usuarios donde apellido = ' ". agregue barras ($apellido),"'";
En este ejemplo, también debe incluir apellido entre comillas simples. La cadena está encerrada ( esto es requerido por la sintaxis SQL), porque aquí se usa doble
No es necesario utilizar caracteres de escape en la cadena entrecomillada. La siguiente declaración es equivalente a usar el carácter de comilla simple:
<. p>$ SQL = 'seleccione * de los usuarios donde apellido = \ ' '. Agregue barra diagonal (last_name)Siempre que desee escribir una cadena en la base de datos, debe asegurarse de que las comillas dentro usan caracteres de escape correctamente, lo cual es común en muchos PHP.
Los principiantes suelen cometer errores.
Cuarto, comillas dobles y HTML
A diferencia de las declaraciones SQL, las comillas dobles generalmente se usan para representar cadenas en el lenguaje HTML estándar (muchos navegadores ahora tienen fuertes capacidades de tolerancia a fallas)
Sí, en HTML está permitido utilizar comillas simples o incluso sin comillas para representar cadenas), por ejemplo:
$html = ' lta href=" ". $url. " gt.$link. lt/a gt;;
$ html = " lta href = \ " $ url \ " gt$ link lt/a >;; No se admite el escape de barra invertida, lo que marca la diferencia cuando utilizamos entradas ocultas de formularios para transferir datos.
Lo siento.
La mejor manera de establecer valores de entrada ocultos es codificarlos usando la función htmlspecialchars(). La siguiente declaración puede
transmitir datos que normalmente pueden contener comillas dobles:
lt tipo de entrada = nombre oculto = valor var = " lt?php echo htmlspecialchars($var)?> gt
Primero, las comillas definen la cadena. Para lograr el propósito de contener comillas, el analizador debe ignorar el significado original cuando encuentra comillas comunes en la cadena. Agregamos una barra invertida antes de la comillas para indicarle esto a PHP. Las comillas son parte de una cadena, y la forma correcta de expresarlas es esta: una cadena entre comillas simples se puede usar en cualquier lugar y será más rápido usarla en un script porque el analizador PHP maneja cadenas entre comillas simples de una manera más sencilla que comillas dobles. Es más complicado porque debe analizarse dentro de la cadena, por lo que el procesamiento es más complicado... Las comillas dobles se escapan, las comillas simples no se escapan.
Por ejemplo, /r/. n es un carácter de nueva línea, pero si escribe un archivo con comillas simples, no es un carácter de nueva línea, pero si escribe un archivo con comillas dobles, es un carácter de nueva línea.