JavaScript en 'sıkı eşit değildir' operatörü ( !==kıyasla üzerine) undefinedyok değil neden falseüzerinde nulldeğerler.
var createTouch = null;
isTouch = createTouch !== undefined
PHP'de eşdeğer bir davranış elde etmek için, değişken adının sonucunun anahtarlarında bulunup bulunmadığını kontrol edebilirsiniz 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();
Çoğu durumda isset($variable)uygundur. Bu eş değerdir array_key_exists('variable', get_defined_vars()) && null !== $variable. Sadece kullanırsanız null !== $variablevarlığı için prechecking olmadan sen uyarılarla altüst günlükleri okumak için bir girişim olduğu için olacak değerini tanımlanmamış bir değişkenin.
Bununla birlikte, tanımsız bir değişkeni herhangi bir uyarı olmadan bir referansa uygulayabilirsiniz:
function my_isset(&$var)
{
return null === $var;
}
$is_set = my_isset($undefined_variable);