una - recorrer string php
En PHP, ¿cuáles son las diferencias entre NULL y establecer una cadena igual a 2 comillas simples? (5)
Solía establecer cosas como esta cuando quería valores en blanco.
$blankVar = '''';
Luego, después de algunos meses, decidí que esto se veía mejor y tenía una intención más clara.
$blankVar = null;
Esto funcionó sin problemas durante un tiempo, pero recientemente, con una declaración preparada de DOP, encontré un problema. Vincular un valor a nulo hizo que la consulta fallara, mientras que vincularlo a '''' no lo hizo. Necesitaba enlazarlo a nulo, de modo que si se cumplía una condición, insertaría datos en blanco.
¿Cuáles son las diferencias entre los 2? Todavía creo que igualar nulo (o al menos una constante) se ve mejor, ¿así que debo hacer esto?
define(''EMPTY'', '''');
''nulo'' es lo único a lo que se refieren las variables no inicializadas. Puede establecer una variable para referirse a nulo. También existe el estado "sin establecer", lo que significa que la variable no existe en absoluto. Puedes comprobarlo a través de la función isset () . Más a menudo se usa para verificar si un elemento de la matriz existe y es, por ejemplo, una forma de ver si $ _GET [''op''] ha recibido un parámetro de cadena de consulta. También puede desactivar una variable (eliminar un elemento de una matriz) a través de la función unset () . También hay una función vacía () que verificará si una variable es NULL, FALSE, 0 o una cadena vacía
Aparte de las diferencias declaradas por Rex, hay dos tipos de comparaciones en PHP, sueltas y estrictas:
http://www.php.net/manual/en/types.comparisons.php
Si se utilizan comparaciones estrictas o funciones como is_null () en cualquier capacidad, obtendrá resultados diferentes. Sin embargo, con comparaciones sueltas, PHP es bastante indulgente.
No lo sé con certeza, pero es posible que pueda utilizar su enfoque nulo, luego encasillarlo cuando use la variable en el contexto donde tuvo problemas (es decir, pasar (cadena) $ blankVar). Si eso funciona, puede significar que se requieren menos cambios en su código.
Bueno, una cosa es lo bonito que se ve cada enfoque, pero la principal diferencia es que una es una cadena vacía y la otra es una variable sin inicializar (nula)
Null es solo otro tipo de datos en PHP, que tiene un solo valor (null). Debido a que PHP es un lenguaje mal escrito, puede ser confuso cómo maneja diferentes valores.
"", 0, "0", False, array(), Null
se consideran Falso en PHP.
Nulo, sin embargo, es un tipo diferente de animal. La principal incompatibilidad con el uso de Null es que no se puede saber si es isset ().
$x = false;
isset($x) -> true
echo $x -> ""
$y = null;
isset($y) -> false
echo $y -> ""
//$z is not set
isset($z) -> false
echo $z -> E_NOTICE
Así que nulo es extraño en el sentido de que no sigue las reglas de variables normales en PHP (al menos algunas). En la mayoría de los casos, está bien.
Cuando se trata de columnas de base de datos, el NULL de PHP no tiene lugar allí. Verás, SQL es un lenguaje basado en cadenas. NULL de SQL debe estar representado por NULL
sin comillas.
Así que si quieres un campo VACÍO, configúralo en ""
INSERT INTO foo SET bar = ""
Pero si quieres un campo NULL, configúralo en NULL
INSERT INTO foo SET bar = NULL
GRAN DIFERENCIA.
Pero si intenta insertar el NULL de PHP directamente, agregará cero caracteres a la consulta (lo que lo deja con un error de sintaxis o en blanco, dependiendo de si lo citó).
null es un valor especial de marcador de posición en el lenguaje de programación que literalmente significa "nada". No es 0, no es una cadena vacía, no es nada. No hay valor en la memoria a la que se apunta. Una cadena vacía, por otro lado, sigue siendo un objeto de cadena, solo uno muy corto :)