In der Entwicklung müssen wir häufig feststellen, ob ein bestimmtes Feld eines Objekts einen Wert hat. Dieser Wert kann jedoch null oder undefiniert sein. Obwohl beide Fälle keinen Wert anzeigen, sind sie dennoch unterschiedlich. Daher muss je nach tatsächlicher Situation bei der Verwendung eine unterschiedliche Verarbeitung durchgeführt werden.
1. Der Unterschied zwischen null und undefiniert
null bedeutet, dass der Wert eines definierten Objekts oder einer Variablen leer ist. Dies ist eine Zuweisungsart, die anzeigt, dass der Variablen kein Wert zugewiesen wurde. null kann auch beim Debuggen von Code verwendet werden, um anzuzeigen, dass eine Eigenschaft nicht korrekt zugewiesen wurde. Verwenden Sie daher bei der Beurteilung, ob der Attributwert leer ist, den Operator ===, da es sich um einen strikten Gleichheitsoperator handelt und nur dann true zurückgibt, wenn die variablen Datentypen und die Werte gleich sind. Zum Beispiel:
$data = [ 'title' => null, 'content' => '内容', ]; if ($data['title'] === null) { echo '未设置标题'; }
undefiniert bedeutet, dass die Variable deklariert wurde, aber noch kein Wert zugewiesen wurde. Darüber hinaus gibt es folgende Situationen:
(1) Die Variable existiert nicht
( 2) Ein bestimmtes Attribut ist im Objekt nicht vorhanden
(3) Die Funktion hat keinen Rückgabewert
Wenn Sie feststellen möchten, ob ein bestimmtes Attribut undefiniert ist, können Sie die isset-Funktion oder die leere Funktion verwenden, um festzustellen, aber es Es wird empfohlen, die Isset-Funktion zu verwenden. Zum Beispiel:
$class = new stdClass(); if (!isset($class->name)) { echo '未定义属性name'; }
2. So bestimmen Sie, ob ein Objektfeld null oder undefiniert ist
Wenn Sie bestimmen, ob ein Objektfeld null oder undefiniert ist, können Sie zur Bestimmung die Funktion isset oder die Funktion array_key_exists verwenden. Die spezifische Methode lautet wie folgt:
Diese Funktion wird verwendet, um zu bestimmen, ob die Variable deklariert wurde und der Wert nicht NULL ist.
$data = [ 'title' => null, 'content' => '内容', ]; if (!isset($data['title'])) { echo '未设置标题'; }
Diese Funktion wird verwendet, um zu bestimmen, ob ein bestimmter Schlüsselname in einem Array vorhanden ist. Gibt true zurück, wenn der Schlüsselname existiert, false, wenn er nicht existiert.
$data = [ 'title' => null, 'content' => '内容', ]; if (!array_key_exists('title', $data)) { echo '未设置标题'; }
Wenn Sie feststellen möchten, ob eine bestimmte Eigenschaft in einem Objekt vorhanden ist, können Sie zur Bestimmung die Funktion isset oder die Funktion property_exists verwenden. Die spezifische Methode lautet wie folgt:
Diese Funktion wird verwendet, um zu bestimmen, ob die Variable deklariert wurde und der Wert nicht NULL ist.
$class = new stdClass(); if (!isset($class->name)) { echo '未定义属性name'; }
Diese Funktion wird verwendet, um zu bestimmen, ob ein Objekt eine bestimmte Eigenschaft hat.
$class = new stdClass(); if (!property_exists($class, 'name')) { echo '未定义属性name'; }
3. Zusammenfassung
In PHP ist die Beurteilung, ob ein Objektfeld null oder undefiniert ist, eine sehr wichtige Fähigkeit, die in der tatsächlichen Entwicklung sorgfältig beherrscht werden muss. Je nach tatsächlichem Bedarf können Sie zur Beurteilung die Funktionen isset, array_key_exists, property_exists usw. verwenden. Unterschiedliche Methoden eignen sich für unterschiedliche Szenarien und sollten flexibel eingesetzt werden, um unnötige Fehler zu vermeiden.
Das obige ist der detaillierte Inhalt vonPHP bestimmt, ob das Objektfeld null oder undefiniert ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!