Heim >Backend-Entwicklung >PHP-Tutorial >PHP ermittelt über verschiedene Funktionen 0 und leere PHP-Instanzen

PHP ermittelt über verschiedene Funktionen 0 und leere PHP-Instanzen

jacklove
jackloveOriginal
2018-06-23 16:17:262132Durchsuche

Dieser Artikel stellt Ihnen die Methode zur Beurteilung von 0 und leer in PHP und verschiedenen Funktionen vor. In dem Artikel stelle ich Ihnen auch die Lösung vor, dass 0 in der PHP-Syntax nicht gleich Null ist PHP Chinesische Website. Lernen Sie

Funktionsurteil von 0

   $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

Richter von null

    $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: In der PHP-Anweisung möchte ich feststellen, ob ein Wert größer oder gleich 0 ist. Ich habe ($value !=null && $value >=0) verwendet und das zurückgegebene Ergebnis war leer, was ist wirklich seltsam.

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 festzustellen, ob ein Wert [das Array möglicherweise leer ist usw.] größer ist 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, 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.

Dies kann mit echo gettype(''); und echo gettype(NULL); ausgedruckt werden! Der ===-Operator vergleicht nicht nur Werte, sondern auch Typen, daher ist der dritte Operator falsch!

Außerdem ist in PHP

= ein Gleichheitszeichen die Zuweisung
== Zwei Gleichheitszeichen werden zur Beurteilung der Gleichheit verwendet und nur Werte und keine Typen verglichen
=== Drei Gleichheitszeichen werden verwendet, um zu beurteilen, ob Werte und Typen gleich sind
!= Nicht-Gleichheitszeichen, nur Werte vergleichen, unabhängig vom Typ
!== Inkongruentes Vorzeichen, Werte und Typen vergleichen

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.

Artikel, die Sie interessieren könnten:

PHP-Tipps zum Erkennen von auf dem Kopf stehenden Bildern, die mit dem iPhone aufgenommen wurden

PHP-Implementierung der Funktion zur Überprüfung des Anmeldebestätigungscodes, PHP-Beispiel

So verwenden Sie Composer, um ThinkPHP5 in einer Windows-Umgebung zu installieren

Das obige ist der detaillierte Inhalt vonPHP ermittelt über verschiedene Funktionen 0 und leere PHP-Instanzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn