En développement, nous devons souvent déterminer si un champ spécifique d'un objet a une valeur, mais cette valeur peut être nulle ou indéfinie. Bien que les deux cas n'indiquent aucune valeur, ils sont toujours différents. Par conséquent, différents traitements doivent être effectués en fonction de la situation réelle lors de son utilisation.
1. La différence entre null et undefined
null signifie que la valeur d'un objet ou d'une variable définie est vide. Il s'agit d'une méthode d'affectation, indiquant qu'aucune valeur n'a été attribuée à la variable. null peut également être utilisé dans le code de débogage pour indiquer qu'une propriété n'a pas été attribuée correctement. Par conséquent, pour juger si la valeur de l'attribut est vide, utilisez l'opérateur ===, car il s'agit d'un opérateur d'égalité stricte et ne retournera vrai que lorsque les types de données variables sont les mêmes et que les valeurs sont égales. Par exemple :
$data = [ 'title' => null, 'content' => '内容', ]; if ($data['title'] === null) { echo '未设置标题'; }
undéfini signifie que la variable a été déclarée mais qu'aucune valeur n'a encore été attribuée. De plus, undéfini a les situations suivantes :
(1) La variable n'existe pas
(. 2) Un certain attribut n'existe pas dans l'objet
(3) La fonction n'a pas de valeur de retour
Si vous souhaitez déterminer si un certain attribut n'est pas défini, vous pouvez utiliser la fonction isset ou la fonction vide pour déterminer, mais cela est recommandé d'utiliser la fonction isset. Par exemple :
$class = new stdClass(); if (!isset($class->name)) { echo '未定义属性name'; }
2. Comment déterminer si un champ d'objet est nul ou indéfini
Pour déterminer si un champ d'objet est nul ou indéfini, vous pouvez utiliser la fonction isset ou la fonction array_key_exists pour déterminer. La méthode spécifique est la suivante :
Cette fonction est utilisée pour déterminer si la variable a été déclarée et si la valeur n'est pas NULL.
$data = [ 'title' => null, 'content' => '内容', ]; if (!isset($data['title'])) { echo '未设置标题'; }
Cette fonction est utilisée pour déterminer si un nom de clé donné existe dans un tableau. Renvoie vrai si le nom de clé existe, faux s'il n'existe pas.
$data = [ 'title' => null, 'content' => '内容', ]; if (!array_key_exists('title', $data)) { echo '未设置标题'; }
Si vous souhaitez déterminer si une certaine propriété existe dans un objet, vous pouvez utiliser la fonction isset ou la fonction property_exists pour déterminer. La méthode spécifique est la suivante :
Cette fonction est utilisée pour déterminer si la variable a été déclarée et si la valeur n'est pas NULL.
$class = new stdClass(); if (!isset($class->name)) { echo '未定义属性name'; }
Cette fonction est utilisée pour déterminer si un objet possède une propriété spécifiée.
$class = new stdClass(); if (!property_exists($class, 'name')) { echo '未定义属性name'; }
3. Résumé
En PHP, juger si un champ d'objet est nul ou indéfini est une compétence très importante, qui doit être soigneusement maîtrisée dans le développement réel. Selon les besoins réels, vous pouvez choisir d'utiliser la fonction isset, la fonction array_key_exists, la fonction property_exists, etc. Différentes méthodes conviennent à différents scénarios et doivent être utilisées avec flexibilité pour éviter des erreurs inutiles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!