Hoy vi que Caterpillar hizo una distinción entre cadenas vacías y NULL para todos ( http://bbs.phpchina.com/thread-99574-1-2.html ). Siento que no tengo una comprensión sólida de lo básico. El conocimiento (como yo) fue muy útil. Era tarde en la noche. Por capricho, verifiqué mucha "información autorizada" y escribí un artículo y lo publiqué aquí para ayudar a todos a aprender los conceptos básicos. No es riguroso y el contenido es solo un resumen personal. Si hay deficiencias, agregue más expertos. Sin más preámbulos, el texto principal es el siguiente:
1. La diferencia entre echo e print
Las funciones de echo e print en PHP
.Básicamente lo mismo (salida), pero todavía existen diferencias sutiles entre los dos. No hay un valor de retorno después de la salida de eco, pero print tiene un valor de retorno y devuelve falso cuando falla la ejecución. Por lo tanto, se puede utilizar como una función normal. Por ejemplo, después de ejecutar el siguiente código, el valor de la variable $r será 1.
Código:
$r = imprimir "Hola Mundo";
Esto significa que print se puede utilizar en algunas expresiones complejas, pero echo no. Sin embargo, debido a que la declaración echo no requiere que se devuelva ningún valor, la declaración echo en el código se ejecuta un poco más rápido que la declaración print.
2. La diferencia entre incluir y requerir.
Las funciones de incluir () y requerir () son básicamente las mismas (incluir), pero existen algunas diferencias en el uso. incluir () es una función de inclusión condicional, mientras que requerir () es una función de inclusión. función de inclusión incondicional. Por ejemplo, en el siguiente código, si la variable $a es verdadera, se incluirá el archivo a.php:
Código:
si($a){
incluir("a.php");
}
Sin embargo, require() es diferente de include() Independientemente del valor de $a, el siguiente código incluirá el archivo a.php en el archivo:
Código:
si($a){
requerir("a.php");
}
En términos de manejo de errores, use la declaración de inclusión. Si ocurre un error de inclusión, el programa omitirá la declaración de inclusión. Aunque se mostrará el mensaje de error, el programa continuará ejecutándose. Pero require le dará un error fatal.
Por supuesto, también podemos entender Qifen literalmente: requerir significa una solicitud o solicitud muy fuerte.
3. Las declaraciones require_once() e include_once()
están fuera de tema porque parecen similares. Las declaraciones simples require_once() e include_once() corresponden a las declaraciones require() e include() respectivamente. Las declaraciones require_once() e include_once() se utilizan principalmente cuando es necesario incluir varios archivos, lo que puede evitar eficazmente el error de definición repetida de funciones o variables causado por incluir el mismo fragmento de código.
4. La diferencia entre cadena vacía ('') y NULL.
En PHP, tanto la cadena vacía como NULL se almacenan con un valor de 0, pero sus tipos son diferentes. Puedes probar echo gettype(''); NULL); encontrará que lo que imprimen es una cadena y NULL respectivamente. Por supuesto, 0 también es fácil de confundir. Puede intentar imprimir el tipo con echo gettype (0); integer), se puede ver que string (''), NULL y 0 son "valores iguales" pero no tipos iguales.
5.! La diferencia entre isset y vacío
se puede entender desde el significado literal: vacío es para determinar si una variable está "vacía", mientras que isset es para determinar si una variable se ha configurado. Pero hay una cosa a la que debes prestar atención aquí: cuando el valor de una variable es 0, vacía considera que la variable es igual a vacía, es decir, equivale a sin configuración. Por ejemplo, cuando detectamos la variable $id, cuando $id=0, usamos vacío e isset para detectar si la variable $id ha sido configurada. Ambos devolverán valores diferentes: vacío piensa que no está configurado e isset puede obtenerlo. el valor de $id, mire el siguiente ejemplo:
¿Código? :
$identificación=0;
vacío($id)?print "Estoy vacío":imprimir "Estoy $id." //Resultado: Estoy vacío
!isset($id)?print "Estoy vacío":print "Soy $id.";//Resultado: Soy 0
6. La diferencia entre == (igual) y === (igual).
Revise la diferencia entre la cuarta cadena vacía ("") y NULL arriba y veamos un ejemplo:
Código:
'' == NULO;
'' === NULL
Después de ejecutarlo, encontrará que el primero es verdadero y el segundo es falso. Se puede ver que == solo compara si los valores son iguales, mientras que === no solo compara los valores, sino que también compara los tipos, lo cual es más estricto.