JavaScript ini 'ketat tidak sama' operator ( !==perbandingan dengan) undefinedtidak tidak menghasilkan falsepada nullnilai-nilai.
var createTouch = null;
isTouch = createTouch !== undefined
Untuk mencapai perilaku yang setara di PHP, Anda dapat memeriksa apakah nama variabel ada di kunci hasil 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();
Dalam banyak kasus, isset($variable)itu sesuai. Itu setara dengan array_key_exists('variable', get_defined_vars()) && null !== $variable. Jika Anda hanya menggunakan null !== $variabletanpa prechecking keberadaan, Anda akan mengacaukan log Anda dengan peringatan karena itu merupakan upaya untuk membaca nilai variabel yang tidak ditentukan.
Namun, Anda dapat menerapkan variabel yang tidak ditentukan ke referensi tanpa peringatan apa pun:
function my_isset(&$var)
{
return null === $var;
}
$is_set = my_isset($undefined_variable);