Der JavaScript-Operator 'strict not same' ( !==) im Vergleich zu undefinedführt nicht zu falseon- nullWerten.
var createTouch = null;
isTouch = createTouch !== undefined
Um ein gleichwertiges Verhalten in PHP zu erreichen, können Sie überprüfen, ob der Variablenname in den Schlüsseln des Ergebnisses von vorhanden ist 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();
In den meisten Fällen isset($variable)ist angemessen. Das ist aquivalent zu array_key_exists('variable', get_defined_vars()) && null !== $variable. Wenn Sie nur verwenden, null !== $variableohne die Existenz vorab zu überprüfen, werden Sie Ihre Protokolle mit Warnungen durcheinander bringen, da dies ein Versuch ist, den Wert einer undefinierten Variablen zu lesen .
Sie können jedoch eine undefinierte Variable ohne Warnung auf eine Referenz anwenden:
function my_isset(&$var)
{
return null === $var;
}
$is_set = my_isset($undefined_variable);