Heim > Artikel > Backend-Entwicklung > PHP ermittelt 0 und leer durch verschiedene Funktionen
Dieser Artikel stellt hauptsächlich vor, wie PHP 0 und leer durch verschiedene Funktionen bestimmt. Jetzt kann ich ihn mit Ihnen teilen.
Funktionen für 0 Urteil über leer
$cast_id = 0; var_dump(strlen($cast_id)); //1 var_dump(empty($cast_id)); // true var_dump(isset($cast_id)); //true var_dump(is_null($cast_id));//false
Urteil über leer
$cast_id = ""; var_dump(strlen($cast_id)); //0 var_dump(empty($cast_id)); // true var_dump(isset($cast_id)); //true var_dump(is_null($cast_id));//false
Zusätzlich: Lassen Sie mich Ihnen die Lösung für das Problem vorstellen, dass 0 in der PHP-Syntax nicht gleich Null ist
Ich bin heute auf ein solches Problem gestoßen so: In der PHP-Anweisung möchte ich feststellen, ob ein Wert größer oder gleich 0 ist. Ich verwende ($value !=null && $value >=0
) und das zurückgegebene Ergebnis ist leer, was wirklich seltsam ist.
Experimentelle Zusammenfassung:
Die PHP-Anweisung lautet wie folgt:
$index=0; echo "A: ".$index."<br>"; //0 echo "B: ".($index !=null && $index >=0)."<br>";// echo "C: ".(isset($index) && $index >=0)."<br>";//1 echo "D: ".(0 !=null)."<br>";//
Ergebnis:
A: 0 B: C: 1 D:
Um zu beurteilen, ob der Wert [das Array möglicherweise leer ist usw.] größer oder gleich 0 ist, kann eine andere Methode verwendet werden: is_numeric($index) === true
$index=array_search($url, $contentOtherStr, true); //值大于等于0, 即存在 if(is_numeric($index) === true) { echo "$url existed. "."<br>"; }else{ echo "$url Add. "."<br>"; array_push($contentOtherStr, $url); }
Das ist sehr seltsam und endlich gelöst. Markieren.
Zusammenfassung: Die Aussagen von PHP sind etwas seltsam. Schüler, die von anderen Programmiersprachen gewechselt sind, müssen vorsichtiger sein und auf Trägheitsdenken und grammatikalische Unterschiede achten, um nicht in Fallstricke zu geraten.
Weitere Informationen:
Der Grund dafür ist, dass Variablen in PHP in C-Sprachstrukturen gespeichert werden. NULL und false basieren alle auf Werten gespeichert, und diese Struktur hat einen zend_uchar-Typ; eine solche Mitgliedsvariable wird zum Speichern des Variablentyps verwendet, und der Typ der leeren Zeichenfolge ist string, der Typ von NULL ist NULL und false ist boolesch.
Sie können dies mit echo gettype('');
und echo gettype(NULL);
ausdrucken! Der ===-Operator vergleicht nicht nur Werte, sondern auch Typen, daher ist der dritte Operator falsch!
Außerdem ist in PHP
= ein Gleichheitszeichen eine Zuweisung
== zwei Gleichheitszeichen werden als gleich beurteilt und vergleichen nur Werte, keine Typen
=== Drei Gleichheitszeichen werden verwendet, um zu beurteilen, ob Werte und Typen gleich sind
!= Nicht gleich dem Vorzeichen, nur die Werte werden verglichen, unabhängig vom Typ
!== Nicht gleich dem Vorzeichen, Die Werte und Typen werden verglichen
also Leere Zeichenfolge (''), false, NULL und 0 sind im Wert gleich, aber unterschiedlich im Typ!
Hinweis:
NULL ist ein besonderer Typ.
NULL in beiden Fällen
1. $var = NULL;
2. $var ;
3."", 0, "0", NULL, FALSE, array(), var $var; und Objekte ohne Attribute werden als leer betrachtet. Wenn var leer ist, wird TRUE zurückgegeben.
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonPHP ermittelt 0 und leer durch verschiedene Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!