Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich PHP-Vergleichsoperatoren? Detaillierte Erläuterung der Verwendung des Vergleichsoperators

Wie verwende ich PHP-Vergleichsoperatoren? Detaillierte Erläuterung der Verwendung des Vergleichsoperators

伊谢尔伦
伊谢尔伦Original
2017-06-21 10:41:172323Durchsuche

Vergleichsoperatoren ermöglichen den Vergleich zweier Werte. Die Vergleichsoperatoren lauten wie folgt:

1) $a > $b ist größer als: Wenn $a unbedingt größer als $b ist, wird TRUE zurückgegeben
2) $a 091eb6795cdcfeac82232e7556fe616f= $b ist größer oder gleich: Wenn $a größer oder gleich $b ist, dann WAHR
4) $a 7560cf786bacc5edf8c5e269c47359d1 : Wenn $a nicht gleich $b ist, geben Sie TRUE zurück
6) $a != $b ist nicht gleich: Wenn $a nicht gleich $b ist, geben Sie TRUE zurück (wie oben)
7 ) $a == $b Gleich: Wenn $a gleich $b ist, gib TRUE zurück
8) $a === $ b sind alle gleich: wenn $a gleich $b ist, und ihre Typen sind auch gleich, dann gib TRUE zurück
9) $a !== $b ist nicht alle gleich: Wenn $a nicht gleich $b ist oder ihre Typen unterschiedlich sind, dann gib TRUE zurück

Unter Bei ihnen müssen wir uns auf die Unterscheidung zwischen „gleich“ und „gleich“ konzentrieren. $a == $b vergleicht nur die Werte der beiden Variablen und führt die Ausdrücke auf beiden Seiten aus Wertvergleich und Datentyp gleichzeitig. Nur wenn die Werte auf beiden Seiten gleich sind, ist das Operationsergebnis „wahr“. In Kombination mit dem „Ungleichheits“-Operator gibt dieser Ausdruck beispielsweise „false“ zurück, da 2 gleich 2 ist. Darüber hinaus ist $a = 2; ein ganzzahliger Typ und 2 in var_dump($a!==2); ist jedoch nicht genau gleich „!==“, sodass das Ergebnis falsch ist , weil 2 gleich 2 ist. Wenn dies jedoch der Fall ist, ist $a = 2; var_dump($a!=='2'); das Ergebnis der Operation „wahr“, da 2 nicht gleich „2“ ist, und Folgendes '2' ist eine Zeichenfolge von '2' ', das heißt, nicht alle Gleichen vergleichen nicht nur die Variablenwerte, sondern auch die Datentypen der Variablen.

Ergebnisse verschiedener Typen in PHP vergleichen

Wenn der PHP-Vergleichsoperator eine Ganzzahl und eine Zeichenfolge vergleicht, wird die Zeichenfolge in eine Ganzzahl konvertiert und dann verglichen. Wenn Sie zwei numerische Zeichenfolgen vergleichen, werden diese als Ganzzahlen verglichen, und diese Regel gilt auch für Switch-Anweisungen.
Zum Beispiel:
var_dump(0 == "a"); // Rückgabe TRUE, "a" wird in 0 umgewandelt
var_dump("1" == "01"); // Rückgabe TRUE , Als Ganzzahl behandeln

Vergleich zwischen String oder Null und String: NULL in „ konvertieren“, Zahlen oder Strings vergleichen
Vergleich zwischen Bool oder Null: In Bool konvertieren, FALSE < TRUE
Objekt Integrierte Klassen können ihre eigenen Vergleiche definieren. Vergleiche zwischen Attributen derselben Klasse
Zeichenfolge, Ressource oder Zahl: Konvertieren Sie Zeichenfolgen und Ressourcen in Zahlen und vergleichen Sie das
Array gemäß der üblichen Mathematik. Vergleich zwischen: Arrays mit weniger Mitgliedern sind kleiner. Wenn der Schlüssel in Operand 1 nicht in Operand 2 vorhanden ist, können die Arrays nicht verglichen werden und müssen Wert für Wert verglichen werden (siehe folgenden Code)
Array und jeder andere Typ Vergleich: Array ist immer größer
Vergleich zwischen Objekt und jedem anderen Typ: Objekt ist immer größer

1 Für Array

$a=array(1,2,3,6); 
$b=array(1,2,3,6,8); 
echo "\n"; 
var_dump( $a>$b); 
var_dump( $a==$b); 
var_dump( $a<$b);

Ergebnis:

boolean false 
boolean false 
boolean true

ps: Ein Array mit weniger Mitgliedern ist kleiner

$a=array(1,2,3,6,9); 
$b=array(1,2,3,6,8); 
echo "\n"; 
var_dump( $a>$b); 
var_dump( $a==$b); 
var_dump( $a<$b); 
boolean true 
boolean false 
boolean false

ps: Werte einzeln vergleichen

$a=array(1,2,3,6,&#39;b&#39;=>3); 
$b=array(1,2,3,6,8); 
echo "\n"; 
var_dump( $a>$b); 
var_dump( $a==$b); 
var_dump( $a<$b); 
boolean false 
boolean false 
boolean false

ps : Wenn der Schlüssel in Operand 1 in Operand 2 nicht vorhanden ist, können die Arrays nicht verglichen werden und es wird „false“ zurückgegeben.

Array-Vergleichscode:

function standard_array_compare($op1, $op2)
{
  if (count($op1) < count($op2)) {    //具有较少成员的数组较小
    return -1;    // $op1 < $op2
  } elseif (count($op1) > count($op2)) {
    return 1;    // $op1 > $op2
   } 
 
  foreach ($op1 as $key => $val) {
   if (!array_key_exists($key, $op2)) {
      return null;   
   } else if ($val < $op2[$key]) {
      return -1;
    } elseif ($val > $op2[$key]) {
      return 1;
     }
  }
  return 0;   // $op1 == $op2
}


2. Vergleich zwischen bool oder null und anderen Typen

var_dump((bool)(null));// boolean false//null ist false, wenn es in bool konvertiert wird; andere
-Typen werden in bool konvertiert und dann verglichen, und FALSE < TRUE
Der
ternäre Operation

im Vergleichsoperator:

Ausdruck (Ausdruck1) : (Ausdruck3) Wenn der Wert von Ausdruck Ausdruck1 TRUE ist, ist der Wert Ausdruck2 expr1 wird als FALSE ausgewertet, wenn es als expr3 ausgewertet wird.

Das obige ist der detaillierte Inhalt vonWie verwende ich PHP-Vergleichsoperatoren? Detaillierte Erläuterung der Verwendung des Vergleichsoperators. 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