Maison >développement back-end >tutoriel php >Comment utiliser les opérateurs de comparaison PHP pour comparer différents types
1. Opérateurs de comparaison PHP
$a == $b est égal à VRAI si $a est égal à $b.
$a === $b est congruent VRAI si $a est égal à $b et que leurs types sont également les mêmes. (Introduit dans PHP 4)
$a != $b n'est pas égal à TRUE si $a n'est pas égal à $b.
$a a8093152e673feb7aba1828c43532094 $b n'est pas égal à TRUE si $a n'est pas égal à $b.
$a !== $b n'est pas congruent VRAI si $a n'est pas égal à $b, ou si leurs types sont différents. (PHP 4 uniquement)
$a 91e247165614bb8a3dbf5e94e67927c3 $b est supérieur à TRUE si $a est strictement $b.
$a bd1cd01d2b49d4e15e89d816b03f8e25= $b est supérieur ou égal à VRAI si $a est supérieur ou égal à $b.
Si l'opérateur de comparaison PHP compare un entier à une chaîne, la chaîne est convertie en entier. Si vous comparez deux chaînes numériques, comparez-les sous forme d’entiers. Cette règle s'applique également aux instructions switch.
<?php var_dump(0 == "a"); // 0 == 0 -> true var_dump("1" == "01"); // 1 == 1 -> true switch ("a") { case 0: echo "0"; break; case "a": // never reached because "a" is already matched with 0 echo "a"; break; } ?>
Si les opérandes sont de types différents, ils sont comparés (dans l'ordre) selon le tableau suivant.
2. Les opérateurs de comparaison PHP comparent différents types
null ou chaîne de caractères Convertir NULL en "" pour une comparaison numérique ou lexicale
bool ou null Tout autre type est converti en bool, FALSE < ; TRUE
Les classes intégrées aux objets objets peuvent définir leurs propres comparaisons. Les propriétés d'une même classe ne peuvent pas être comparées de la même manière (en PHP 4, il a sa propre description
array array Un tableau avec moins de membres est plus petit si la clé de l'opérande 1 n'existe pas dans l'opérande 2 Alors les tableaux ne peuvent pas être comparés, sinon les valeurs sont comparées une par une
tout autre type d'objet est toujours plus grand. >
<?php // 数组是用标准比较运算符这样比较的 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; // uncomparable } elseif ($val < $op2[$key]) { return -1; } elseif ($val > $op2[$key]) { return 1; } } return 0; // $op1 == $op2 } ?>Opérateur ternaire
Opérateur Un autre opérateur conditionnel est l'opérateur "?:" (ou ternaire).
L'expression (expr1) ? (expr2) : (expr3) a la valeur expr2 lorsque expr1 est évaluée à VRAI et expr3 lorsque expr1 est évaluée à FAUX.<?php // Example usage for: Ternary Operator $action = (empty($_POST['action'])) ? 'default' : $_POST['action']; // The above is identical to this if/else statement if (empty($_POST['action'])) { $action = 'default'; } else { $action = $_POST['action']; } ?>
Remarque : Notez que l'opérateur ternaire est une instruction, donc son évaluation n'est pas une variable, mais le résultat de l'instruction. Ceci est important si vous souhaitez renvoyer une variable par référence. L'instruction return $var == 42 ? $a : $b; dans une fonction qui renvoie par référence ne fonctionnera pas, et une future version de PHP émettra un avertissement à ce sujet.
Identifier les opérateurs pour mettre en œuvre des comparaisons logiques
a. Relations multiples qui sont directement OU (entrée utilisateur)
b. >time>12 time=9
c. Opérateurs de comparaison disponibles (>, <, <=, =, !=)
time>12&&time<25d L'objet à comparer doit être déchargé devant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!