Heim  >  Artikel  >  Backend-Entwicklung  >  PHP ermittelt 0 und leer durch verschiedene Funktionen

PHP ermittelt 0 und leer durch verschiedene Funktionen

不言
不言Original
2018-06-01 11:32:013152Durchsuche

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:

Benutzerdefinierte PHP-Funktion zum Implementieren der Array-Zuweisung „assign()“ zur Vorlage und der Variablenzuweisung „extract()“ zur Vorlage

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!

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