JavaScript jest „ścisłe nie równa” operator ( !==) na porównaniu undefinedma nie powodować falsena nullwartości.
var createTouch = null;
isTouch = createTouch !== undefined
Aby osiągnąć równoważne zachowanie w PHP, możesz sprawdzić, czy nazwa zmiennej istnieje w kluczach wyniku 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();
W większości przypadków isset($variable)jest to właściwe. To jest równoważne z array_key_exists('variable', get_defined_vars()) && null !== $variable. Jeśli po prostu użyjesz null !== $variablebez wstępnego sprawdzania istnienia, zepsujesz swoje dzienniki ostrzeżeniami, ponieważ jest to próba odczytania wartości niezdefiniowanej zmiennej.
Możesz jednak zastosować niezdefiniowaną zmienną do odwołania bez żadnego ostrzeżenia:
function my_isset(&$var)
{
return null === $var;
}
$is_set = my_isset($undefined_variable);