php isset isnull isnullorempty

Compruebe si la variable is_undefined en PHP



isset isnull (6)

Creo que http://php.net/manual/en/function.get-defined-vars.php es un buen candidato para tal trabajo:

array_key_exists(''myNull'', get_defined_vars());

Debes hacer lo que esperas.

Si trabajas en un contexto global, también puedes usar:

array_key_exists(''myNull'', $GLOBALS);

En PHP, quiero comprobar si una variable no se ha establecido / definido, donde la configuración de una variable NULL se considera establecida / definida .

Estoy al tanto de todo aquí: http://php.net/manual/en/types.comparisons.php incluyendo isset (), empty (), y is_null (). Ninguno de estos parece ser lo que estoy buscando. Considere el siguiente ejemplo:

<?php $myNull = null; echo ''isset($myNull): "''.isset($myNull).''"<br />''; echo ''$myNull value = "''.$myNull . ''"<br />''; echo "<br />"; echo ''isset($myUndefined): "''.isset($myUndefined).''"<br />''; echo ''$myUndefined value = "''.$myUndefined . ''"<br />''; ?>

Este ejemplo produce algo como:
isset ($ myNull): ""
$ myNull value = ""

isset ($ myUndefined): ""
Aviso: Variable no definida: myUndefined en C: / wamp / www / plm / temp4.php en la línea 9
$ myUndefined value = ""

Quiero saber si una variable no está definida como se indica arriba en el aviso. Quiero una función, llámala "is_undefined", donde

$myNull = null; is_undefined($myNull); // is false is_undefined($myUndefined); // is true

¿Nadie? Gracias por adelantado.



Sí, al igual que el Sr. Jonathan mencionó anteriormente, podríamos usar array_key_exists () + $ GLOBALS en lugar de get_defined_vars () para identificar una variable no definida a nula

$x; // $x is undefined $y=null; // $y is defined and is NULL type variable with the only null value $z=[]; // $z is an array object if( array_key_exists(''x'', $GLOBALS) && is_null($x) ) echo "/$x exists and is null/n"; if( array_key_exists(''y'', $GLOBALS) && is_null($y) ) echo "/$y exists and is null/n"; if( array_key_exists(''z'', $GLOBALS) && is_null($z) ) echo "/$he exists and is null/n"; // output $y exists and is null


Si desea una función is_undefined, preferiría no trabajar con matrices, así que haría esto:

function is_undefined(&$test) { return isset($test) && !is_null($test); }

Así que cuando haces echo isset($myNull); convierte el booleano (verdadero) a "". Es por eso que el valor está en blanco. Si quieres verlo en la pantalla, puedes hacer var_dump(isset($myNull)); que se mostrará si es verdadero o falso.

También tienes un eco de $ myUndefined pero aún no está configurado, por eso recibes una advertencia. Lo que quieres hacer es:

if (!empty($myUndefined)) { // variable is defined so do something with it echo ''$myUndefined value = "'' . $myUndefined . ''"<br />''; } else { echo ''Oops, $myUndefined is Undefined!<br />"; }

Aquí hay una breve descripción de isset () vs. is_null () vs. empty ()

$foo = null; // isset($foo) == true; // empty($foo) == true; // is_null($foo) == true; // Notice I don''t set $foo2 to anything // isset($foo2) == false; // empty($foo2) == true; // is_null($foo2) throws a notice! $foo3 = false; // isset($foo2) == true; // empty($foo2) == true; // is_null($foo2) == false; $foo4 = 1234; // isset($foo2) == true; // empty($foo2) == false; // is_null($foo2) == false;


Si está utilizando OOP, use la sobrecarga __isset() esta función se ejecutará cuando intente acceder a una variable que no está definida en ningún lugar. ejemplo:

public function __isset($name) { echo ''Hello''; }

Por lo tanto, evitará cualquier mensaje de error o aviso relacionado con una variable no definida


También puede usar compact() para esto, si la variable que le asigna no está en la tabla de símbolos, devuelve una matriz vacía, de lo contrario, una matriz que contenga el par de nombre / valor de la variable, simplemente envíe el resultado a un valor booleano.

<?php $myNull = null; $isDefined = (bool) compact(''myNull''); // true $otherIsDefined = (bool) compact(''myUndefined''); // false