Opérateur | Nom | Résultat |
---|---|---|
++$a | Pré-incrément | Incrémente $a d'un, puis renvoie $a. |
$a++ | Post-incrément | Renvoie $a, puis incrémente $a de un. |
--$a | Pré-décrément | Décrémente $a d'un, puis renvoie $a. |
$a-- | Post-décrément | Renvoie $a, puis décrémente $a d'un. |
Opérateur | Signification |
---|---|
= | affectation simple |
+= | addition puis affectation |
-= | soustraction puis affectation |
*= | multiplication puis affectation |
/= | division puis affectation |
%= | modulo puis affectation |
|= | ou puis affectation |
&= | et puis affectation |
=> | associe une valeur à une clé dans un tableau (voir leçon 5) |
-> | réalise un appel de méthode (voir leçon 8) |
<?php $n = 3; $n += 2; // équivaut à $n = $n + 2 --> $n vaut 5 $n *= 6; // équivaut à $n = $n * 6 --> $n vaut 30 $n %= 5; // équivaut à $n = $n % 5 --> $n vaut 0 car 30 est divisible par 5. ?>Autre exemple sur les opérateurs d'affectationNom du fichier : exercises_03/lesson_03_affectation.phpOpérateurs arithmétiques
Opérateur | Opération |
---|---|
+ | addition |
- | soustraction |
/ | division |
* | multiplication |
% | modulo |
++ | incrément (voir paragraphe "incrémentation/décrémentation ci-après) |
-- | décrément (voir paragraphe "incrémentation/décrémentation ci-après) |
Exemple | Nom | Résultat |
---|---|---|
$a == $b | Egal | Vrai si les valeurs de $a et $b sont égales Noter les DEUX signes "égale" à la suite : $a = = $b |
$a === $b | Identique | Vrai si $a == $b et si $a et $b sont de même type. Noter les TROIS signes "égale" à la suite : $a = = = $b (PHP 4) |
$a != $b | Non égal | Vrai si $a n'est pas égal à $b. |
$a <> $b | Non égal | Vrai si $a n'est pas égal à $b. |
$a !== $b | Non identique | Vrai si $a n'est pas égal à $b, ou si $a et $b sont de types différents (PHP 4). |
$a < $b | Plus petit que | Vrai si $a est plus petit que $b. |
$a > $b | Plus grand que | Vrai si $a est plus grand que $b. |
$a <= $b | Plus petit ou égal à | Vrai si $a est plus petit ou égal à $b |
$a >= $b | Plus grand ou égal à | Vrai si $a est plus grand ou égal à $b. |
Opérateur | Anglais | Français | Résultats |
---|---|---|---|
& | AND | ET | Multiplication : 1&1=1; 1&0=0; 0&1=0; 0&0=0; |
| | OR | OU | Addition : 1|1=1; 1|0=1; 0|1=1; 0|0=0; |
^ | XOR | OU EXCLUSIF | Addition : 1^1=0; 1^0=1; 0^1=1; 0^0=0; |
~ | NOT | NON | Négation : ~1=0 ; ~0=1; |
<?php echo 3 & 6 ; // 0011 ET 0110 résultat : 0010 --> 2 echo ~ 3 ; // NOT 3 => 3 en binaire = 011 si on inverse on obtient 100, et comme on inverse // aussi le signe, on obtient -4 echo 12 ^ 9; // donne '5' // 12 = 01100 // ^9 = 01001 // ----------- // 00101 = 5 echo "12" ^ "9"; // donne le caractère Backspace (ascii 8) // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8 // 1 1 0 0 0 1 // ^ 1 1 1 0 0 1 //---------------- // 0 0 1 0 0 0 ?>
Opérateur | Signification | Exemple | Signification |
---|---|---|---|
<< | Décalage vers la gauche | 1 << 2 | Décale la valeur 1 de 2 vers la gauche |
>> | Décalage vers la droite | -3 >> 1 | Décale la valeur -3 de 1 vers la droite |
Exemple | Nom | Résultat |
---|---|---|
$a and $b | And | Vrai si $a et $b sont vrais S'exécute après le = |
$a or $b | Or | Vrai si $a, ou $b, ou les deux, sont vrais S'exécute après le = |
$a xor $b | Xor | Vrai si un et un seul parmi $a ou $b est vrai |
! $a | Not | Vrai si $a est faux |
$a && $b | And | Vrai si $a et $b sont vrais. S'exécute avant le = |
$a || $b | Or | Vrai si $a, ou $b, ou les deux, sont vrais S'exécute avant le = |
<?php if ($a and $b) // sous-entendu (($a and $b)==true) { echo " $a et $b sont tous les deux vrais (pas vides, différents de 0)" ; } ?>Note: on voit que les opérateurs and et && d'une part, or et || d'autre part semblent avoir la même signification, en fait ils sont rarement interchangeables car ils n'ont pas le même rang dans l'ordre d'exécution des opérateurs :Exemple avec "||" et "ou" donnant un résultat différentNom du fichier : exercises_03/lesson_03_priority.phpOpérateurs sur du texte
L'opérateur de concaténation . (le point) est utilisable sur les chaînes.L'art de la concaténation<?php $chaîne= "Votre nom est" ;L'opérateur de concaténation et affectation .= (point et égale) est aussi utilisable sur les chaînes.
$nom= "Toto";
echo $chaîne . " " . $nom; // affiche "Votre nom est Toto"
?><?php
$a = "Hello ";
$a .= "World!"; /* va maintenant contenir "Hello World!"
et est équivalent à : $a = $a."World!" */
?>Nom du fichier : exercises_03/lesson_03_text.phpL'opérateur ? :
L'opérateur ? : s'appelle aussi opérateur de test "trinaire".L'opérateur de test trinaire
Sa syntaxe est
[test logique] ? [expression si vrai] : [expression si faux]<?phpOn peut également l'utiliser pour compacter les séquence de test / affectations
$a= $b =1;
( $a == $b ) ? $c= 10 : $c = 20; // effectue $c = 10;
?><?phpNote : Ne pas utiliser 'echo' mais 'print' après le ?
$réponse = ( $a == $b ) ? "a égal b" : "a différent de b" ;
echo $réponse; // affiche "a égal b" car le test ( $a == $b ) renvoie vrai
?>
Nom du fichier : exercises_03/lesson_03_trinary.phpOrdre d'exécution des opérateurs (operators precedence)
La préséance entre plusieurs opérateurs spécifie l'ordre dans lequel ces opérateurs s'exécutent.
Ainsi * s'exécute avant + donc 1 + 5 * 3 renvoie 16 et non 18. D'une façon générale les opérateurs de multiplication s'exécutent avant les additions et les "et" avant les "ou".
Associativité : Propriété d'une opération qui permet d'en regrouper les termes sans en changer le résultat.
Par convention, 9+5+2 est équivalent à (9+5)+2 et 9-5-2 est équivalent à (9-5)-2. Quand un opérande comme 5 a des opérateurs à sa gauche et à sa droite, des conventions sont nécessaires pour décider quel opérateur agit sur cet opérande. On dit que l'opérateur + est associatif à gauche car un opérande avec des signes plus de chaque côté est traité par l'opérateur situé à sa gauche. Dans la plupart des langages de programmation, les quatre opérateurs arithmétiques, addition, soustraction, multiplication et division, sont associatifs à gauche. Quelques opérateurs usuels comme l'exponentiation sont associatifs à droite. Mais en PHP il n'y a pas d'opérateur pour l'exponentiation, mais une fonction: pow<?phpEx : $a*$b*$c est équivalent à $a*($b*$c) et à ($a*$b)*$c
<?php
$a = 2 ;
$c = 4 ;
$d = pow($a,$c) ;
echo $d; // renvoie 16
?>
Il est recommandé d'utiliser plutôt les parenthèses pour "forcer" la priorité, sachant que dans tous les cas c'est le niveau le plus "intérieur" des parenthèses qui va s'exécuter en premier.
Ex: ((1 + 5) * 3) renverra 18.
Ex: (1 + (5 * 3)) renverra 16.
Priorité des opérateurs (Operator Precedence)
De la priorité la plus élevée à la priorité la moins élevée :
Associativité | Opérateurs |
---|---|
non-associatif | new |
droite | [ |
droite | ! ~ ++ -- (int) (float) (string) (array) (object) @ |
gauche | * / % |
gauche | + - . |
gauche | << >> |
non-associatif | < <= > >= |
non-associatif | == != === !== |
gauche | & |
gauche | ^ |
gauche | | |
gauche | && |
gauche | || |
gauche | ? : |
gauche | = += -= *= /= .= %= &= |= ^= ~= <<= >>= |
droite | |
gauche | and |
gauche | xor |
gauche | or |
gauche | , |
Voir chapitre 1 (here docs)
Chapitre 01 : Here docs
Voir leçon sur les tableaux
Chapitre 05 : Tableaux et chaînes de caractères
Tous droits réservés. 2005-2020 |