Opérateur « pas stricte égalité » de JavaScript ( !==) sur la comparaison avec undefinedne pas entraîner falsesur des nullvaleurs.
var createTouch = null;
isTouch = createTouch !== undefined
Pour obtenir un comportement équivalent en PHP, vous pouvez vérifier si le nom de la variable existe dans les clés du résultat 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();
Dans la plupart des cas, isset($variable)c'est approprié. C'est équivalent à array_key_exists('variable', get_defined_vars()) && null !== $variable. Si vous utilisez simplement null !== $variablesans pré-vérification de l'existence, vous gâcherez vos journaux avec des avertissements car il s'agit d'une tentative de lecture de la valeur d'une variable non définie.
Cependant, vous pouvez appliquer une variable non définie à une référence sans aucun avertissement:
function my_isset(&$var)
{
return null === $var;
}
$is_set = my_isset($undefined_variable);