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.
No lo he usado todavía, pero creo que vale la pena ver "get_defined_vars" ... http://php.net/manual/en/function.get-defined-vars.php
Lo intentaría y arrojaría el resultado.
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