JavaScript de 'estricta es igual a' operador ( !==) en comparación con los undefinedno no como resultado falsede nullvalores.
var createTouch = null;
isTouch = createTouch !== undefined
Para lograr un comportamiento equivalente en PHP, puede verificar si el nombre de la variable existe en las claves del resultado de get_defined_vars().
const BR = '<br>' . PHP_EOL;
$test = 1;
function test()
{
echo '$test ' . ( array_key_exists('test', get_defined_vars())
? 'exists.' : 'does not exist.' ) . BR;
$test = null;
echo '$test ' . ( array_key_exists('test', get_defined_vars())
? 'exists.' : 'does not exist.' ) . BR;
$test = 1;
echo '$test ' . ( array_key_exists('test', get_defined_vars())
? 'exists.' : 'does not exist.' ) . BR;
unset($test);
echo '$test ' . ( array_key_exists('test', get_defined_vars())
? 'exists.' : 'does not exist.') . BR;
}
test();
En la mayoría de los casos, isset($variable)es apropiado. Eso es equivalente a array_key_exists('variable', get_defined_vars()) && null !== $variable. Si solo usa null !== $variablesin verificar previamente la existencia, estropeará sus registros con advertencias porque es un intento de leer el valor de una variable indefinida.
Sin embargo, puede aplicar una variable indefinida a una referencia sin ninguna advertencia:
function my_isset(&$var)
{
return null === $var;
}
$is_set = my_isset($undefined_variable);