Dans ce chapitre, nous aborderons l'utilisation de différents opérateurs en PHP.
En PHP, l'opérateur d'affectation = est utilisé pour attribuer une valeur à une variable.
En PHP, l'opérateur arithmétique + est utilisé pour additionner des valeurs.
opérateur | nom | décrire | Exemple | résultat |
---|---|---|---|---|
x + y | ajouter | somme de x et y | 2+2 | 4 |
xy | réduire | différence entre x et y | 5-2 | 3 |
x*y | prendre | produit de x et y | 5*2 | 10 |
x/y | retirer | Quotient de x et y | 15/5 | 3 |
x % y | Modulo (reste de la division) | Reste lorsque x est divisé par y | 5% 210% 810% 2 | 120 |
-x | nier | annuler x | -2 | -2 |
un.b | juxtaposer | Concaténer deux chaînes | "Salut" "Ha" | Salut Ha |
Les exemples suivants illustrent différents résultats utilisant différents opérateurs arithmétiques :
<?php $x = 10 ; $ y = 6 ; ( $x + $y ) ; // Sortie 16 écho ' <br> ' ; // Saut de ligne écho ( $x - $y ) ; // Sortie 4 écho ' <br> ' ; // Saut de ligne écho ( $x * $y ) ; // Sortie 60 écho ' <br> ' ; // Saut de ligne écho ( $x / $y ) ; // Sortie 1.6666666666667 écho ' <br> ' ; // Saut de ligne écho ( $x % $y ) ; // Sortie 4 écho ' <br> ' ; // Saut de ligne écho - $ x ;
La version PHP7+ a un nouvel opérateur de division entière intdiv() , exemples d'utilisation :
<?php var_dump ( intdiv ( 10 , 3 ) ) ? > ;
L'exemple ci-dessus affichera :
int(3)
En PHP, l'opérateur d'affectation de base est "=". Cela signifie que l'opérande de gauche est défini sur la valeur de l'expression de droite. Autrement dit, la valeur de « $x = 5 » est 5.
opérateur | Équivalent à | décrire |
---|---|---|
x = oui | x = oui | L'opérande de gauche est défini sur la valeur de l'expression de droite |
x += oui | x = x + y | ajouter |
x -= oui | x = x - y | réduire |
x*=y | x = x * y | prendre |
x /= oui | x = x / y | retirer |
x%=y | x = x % y | Modulo (reste de la division) |
une .= b | une = une b. | Concaténer deux chaînes |
Les exemples suivants illustrent différents résultats en utilisant différents opérateurs d'affectation :
<?php $x = 10 ; écho $x ; // Sortie 10 $y = 20 ; $y + = 100 ; $y ; // Sortie 120 $z = 50 ; $z - = 25 ; $z ; // Sortie 25 $i = 5 ; $i * = 6 ; $i ; // Sortie 30 $j = 10 ; $j / = 5 ; $j ; // Sortie 2 $k = 15 ; $k % = 4 ; $k ; // Sortie 3 ?>
Les exemples suivants illustrent le même résultat en utilisant différents opérateurs de chaîne :
<?php $ a = " Bonjour " ; $ b = $ a . $b ; // Sortie Bonjour tout le monde ! $x = " Bonjour " ; $x . = " monde ! " ; $x ; // Sortie Bonjour tout le monde ! ?>
opérateur | nom | décrire |
---|---|---|
++x | pré-incrémentation | Ajoutez 1 à x et renvoyez x |
x++ | post-incrémentation | Renvoie x, puis ajoute 1 à x |
--x | Pré-décrément | Décrémenter x de 1, puis renvoyer x |
x-- | Diminuant après | Renvoie x, puis décrémente x de 1 |
L'exemple suivant montre les résultats de l'utilisation des opérateurs d'incrémentation/décrémentation :
<?php $x = 10 ; echo ++ $x ; // Sortie 11 $y = 10 ; écho $y ++; // Sortie 10 $z = 5 ; echo -- $z ; // Sortie 4 $i = 5 ; écho $i --; // Sortie 5 ?>
Les opérateurs de comparaison vous permettent de comparer deux valeurs :
opérateur | nom | décrire | Exemple |
---|---|---|---|
x == oui | égal | Renvoie vrai si x est égal à y | 5==8 renvoie faux |
x === oui | absolument égal à | Renvoie vrai si x est égal à y et qu'ils sont du même type | 5==="5" renvoie faux |
x != oui | pas égal à | Renvoie vrai si x n'est pas égal à y | 5!=8 renvoie vrai |
x <> y | pas égal à | Renvoie vrai si x n'est pas égal à y | 5<>8 renvoie vrai |
x !== y | Certainement pas égal à | Renvoie vrai si x n'est pas égal à y ou s'ils ne sont pas du même type | 5!=="5" renvoie vrai |
x > y | supérieur à | Renvoie vrai si x est supérieur à y | 5>8 renvoie faux |
x < y | moins que | Renvoie vrai si x est inférieur à y | 5<8 renvoie vrai |
x >= oui | Supérieur ou égal à | Renvoie vrai si x est supérieur ou égal à y | 5>=8 renvoie faux |
x <= y | inférieur ou égal à | Renvoie vrai si x est inférieur ou égal à y | 5<=8 renvoie vrai |
Les exemples suivants illustrent différents résultats en utilisant certains opérateurs de comparaison :
<?php $x = 100 ; $ y = " 100 " ; var_dump ( $x == $y ) ; " <br> " ; var_dump ( $x === $ y ) ; " <br> " ; var_dump ( $x ! = $y ) ; " <br> " ; var_dump ( $x !== $y ) écho ; " <br> " ; $a = 50 ; $ b = 90 ; var_dump ( $a > $b ) ; " <br> " ; var_dump ( $a < $b ) ? >
opérateur | nom | décrire | Exemple |
---|---|---|---|
x et y | et | Renvoie vrai si x et y sont vrais | x=6y=3(x < 10 et y > 1) renvoie vrai |
x ou y | ou | Renvoie vrai si au moins l'un de x et y est vrai | x=6y=3(x==6 ou y==5) renvoie vrai |
x xor y | XOR | Si un et un seul de x et y est vrai, alors renvoie vrai | x=6y=3(x==6 xor y==3) renvoie faux |
x && y | et | Renvoie vrai si x et y sont vrais | x=6y=3(x < 10 && y > 1) renvoie vrai |
x || | ou | Renvoie vrai si au moins l'un de x et y est vrai | x=6y=3(x==5 || y==5) renvoie faux |
!x | Non | Si x n'est pas vrai, renvoie vrai | x=6y=3!(x==y) renvoie vrai |
opérateur | nom | décrire |
---|---|---|
x + y | rassembler | l'ensemble de x et y |
x == oui | égal | Renvoie vrai si x et y ont la même paire clé/valeur |
x === oui | Égalité | Renvoie vrai si x et y ont les mêmes paires clé/valeur dans le même ordre et type |
x != oui | Pas égal | Renvoie vrai si x n'est pas égal à y |
x <> y | Pas égal | Renvoie vrai si x n'est pas égal à y |
x !== y | Pas identique | Renvoie vrai si x n'est pas égal à y |
Les exemples suivants illustrent différents résultats en utilisant certains opérateurs de tableau :
<?php $x = tableau ( " a " => " rouge " , " b " => " vert " ) ; $ y = tableau ( " c " => " bleu " , " d " => " jaune " ) ; = $x + $y ; // Combine les tableaux $x et $y var_dump ( $ z ) ; var_dump ( $ x == $ y ) ; var_dump ( $ x === $ y ) ; var_dump ( $ x ! = $ y ) ; x !== $y ) ? >
Un autre opérateur conditionnel est l'opérateur « ? : » (ou ternaire).
(expr1) ? (expr2) : (expr3)
La valeur lorsque expr1 est évaluée à TRUE est expr2, et lorsque expr1 est évaluée à FALSE, la valeur est expr3.
Depuis PHP 5.3, la partie centrale de l'opérateur ternaire peut être omise. L'expression expr1 ? : expr3 renvoie expr1 si expr1 est évaluée à TRUE et expr3 sinon.
Dans l'exemple suivant, il est jugé que la requête $_GET contient la valeur utilisateur. Si tel est le cas, $_GET['user'] est renvoyé, sinon personne n'est renvoyé :
<?php $test = ' Tutoriel Codeur ' ; // Méthode d'écriture normale $nom d'utilisateur = isset ( $test ) ? $test : ' personne echo ' ; $username , PHP_EOL ; // Méthode d'écriture de la version PHP 5.3+ $nom d'utilisateur = $ test ?: ' personne ' ; $nom d'utilisateur , PHP_EOL ? >
Tutoriels pour les codeurs Tutoriels pour les codeurs
Remarque : PHP_EOL est un caractère de nouvelle ligne, compatible avec les plateformes plus grandes.
Il existe un opérateur de fusion NULL supplémentaire ??
dans la version PHP7+. L'exemple est le suivant :
<?php // Si $_GET['user'] n'existe pas, renvoie 'nobody', sinon renvoie la valeur de $_GET['user'] $username = $_GET [ ' user ' ] ?? ' personne ' ; // Opérateur ternaire similaire $username = isset ( $_GET [ ' utilisateur ' ] ) $_GET [ ' utilisateur ' ] : ' personne ' ? > ;
PHP7+ prend en charge les opérateurs de comparaison combinés, les exemples sont les suivants :
<?php // Type entier écho 1 <=> 1 ; // 0 écho 1 <=> 2 ; // -1 écho 2 <=> 1 ; // 1 // Type à virgule flottante écho 1 .5 <=> 1 .5 ; // 0 écho 1 .5 <=> 2 .5 ; // -1 écho 2,5 <=> 1,5 ; // 1 // Chaîne écho " une " <=> " une " ; // 0 écho " une " <=> " b " ; // -1 écho " b " <=> " a " ; // 1 ?>
Le tableau suivant répertorie les opérateurs de la priorité la plus élevée à la plus basse. Les opérateurs d'une même ligne ont la même priorité et la direction dans laquelle ils sont combinés détermine l'ordre d'évaluation.
Remarque : Gauche = de gauche à droite, droite = de droite à gauche.
Sens contraignant | opérateur | Informations Complémentaires |
---|---|---|
aucun | cloner nouveau | clone et nouveau |
Gauche | [ | tableau() |
droite | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | Types et incrémentation/décrémentation |
aucun | instance de | taper |
droite | ! | Opérateurs logiques |
Gauche | */% | opérateurs arithmétiques |
Gauche | + – . | Opérateurs arithmétiques et de chaînes |
Gauche | << >> | Opérateurs de bits |
aucun | == != === !== <> | opérateur de comparaison |
Gauche | & | Opérateurs de bits et références |
Gauche | ^ | Opérateurs de bits |
Gauche | | | Opérateurs de bits |
Gauche | && | Opérateurs logiques |
Gauche | || | Opérateurs logiques |
Gauche | ? : | opérateur ternaire |
droite | = += -= *= /= .= %= &= |= ^= <<= >>= => | opérateur d'affectation |
Gauche | et | Opérateurs logiques |
Gauche | xor | Opérateurs logiques |
Gauche | ou | Opérateurs logiques |
Gauche | , | Utilisé dans de nombreux endroits |
Dans la priorité des opérateurs, or, ||, && et et sont tous des opérateurs logiques ayant le même effet, mais leurs priorités sont différentes.
<?php // Priorité : && > = > et // Priorité : || > = > ou $a = 3 ; $b = faux ; $c = $a ou $b ; var_dump ( $c ) ; // $c voici la valeur int 3, pas la valeur booléenne true $d = $a || $b ; var_dump ( $d ) ; // $d voici la valeur booléenne vraie ?>
Le résultat de l’exemple ci-dessus est :
int(3)bool(vrai)
Nous indiquons clairement l'ordre des opérations via l'appariement des parenthèses, plutôt que de nous fier à la priorité des opérateurs et à l'associativité, qui peuvent généralement augmenter la lisibilité du code.
<?php // Opération prioritaire entre parenthèses $a = 1 ; $ b = 2 ; $c = 3 ; $d = $a + $b * $c ; $d ; écho " n " ; $e = ( $a + $b ) * $c ; // Utiliser des parenthèses écho $e ; écho " n " ? >
Le résultat de l’exemple ci-dessus est :
79