Opérateurs et expressions PHP
Un article de WikiTuto.
Sommaire |
Explication
Opérateurs arithmétiques
Quelques exemples valent souvent mieux qu'un long discours...
$a + $b Addition Somme de $a et $b. $a - $b Soustraction Reste de la différence de $b et $a. $a * $b Multiplication Produit de $a par $b. $a / $b Division Dividende de $a par $b. $a % $b Modulo Reste de la division entiàre de $a par $b.
Opérateurs sur les chaînes
Il n'existe qu'un seul opérateur en PHP3 sur les chaînes, c'est l'opérateur de concaténation. C'est tout me direz vous ? Rassurez-vous, PHP3 dispose en standard de toutes les fonctions nécessaires. Elles sont décrites plus loin dans ce tutoriel. Référez-vous à la documentation PHP3 au chapitre "XL. String functions".
$a = "Hello "; $b = $a . "World!"; // maintenant $b contient "Hello World!"
Il est à noter que vous pouvez spécifier une chaîne en l'encadrant entre des simples ou des doubles quotes. Dans le second cas, PHP3 tentera d'interprêter le contenu de la chaîne. La différence au niveau performance existe, mais est mineure.
$val='Pengo'; echo 'Hello $val'; // Affiche Hello $val echo "Hello $val"; // Affiche Hello Pengo
L'utilisation de l'opérateur arithmétique d'addition en vue de concaténer deux chaînes de caractères est interdite. Un paramètre de PHP3.INI permet de signaler ces mauvaises utilisations de l'opérateur +.
warn_plus_overloading = Off ; warn if the + operator is used with strings
Opérateurs Binaires
Il s'agit des opérateurs binaires dits "bit à bit", et non pas des opérateurs logiques booléens.
$a & $b Et Les bits qui sont à 1 dans $a ET dans $b sont mis à 1.
$a | $b Ou Les bits qui sont à 1 dans $a OU dans $b sont mis à 1.
~ $a Non Les bits sont inversés.
$a = 5; // 0000 0101
$b = 12; // 0000 1100
$c = $a & $b; // $c vaut donc 0000 0100 soit 4
$d = $a | $b; // $d vaut donc 0000 1101 soit 13
$e = ~ $a; // $e contient le complément de 5, soit 1111 1010
// (avec devant autant de 1 que vous voulez) ce qui vaut -6
Opérateurs Logiques
hose originale avec PHP3, il existe deux versions des opérateurs logiques ET et OU, avec des précédences différentes.
$a and $b Et Résultat vrai si $a ET $b sont vrais
$a or $b Ou Résultat vrai si $a OU $b est vrai (ou les deux)
$a xor $b Ou Exclusif Résultat vrai si $a OU $b est vrai, mais
pas si les deux sont vrais
! $a Résultat vrai si $a est faux, et réciproquement
$a && $b Et Résultat vrai si $a ET $b sont vrais
$a || $b Ou Résultat vrai si $a OU $b est vrai (ou les deux)
Les opérateurs || et "or" n'ont pas la même précédence. Cela permet d'écrire la chose suivante sans avoir besoin d'utiliser des parenthèses qui allourdissent le code :
$a = foo() || bar() or die(); // équivalent à ($a = foo() || bar() ) or die();
// si vous écriviez ça : $a = foo() || bar() || die() // PHP3 comprendrait $a = (foo() || bar() || die())
Opérateurs non documentés
Pour les nostalgiques des notations binaires et langages machines, deux opérateurs de décalage existent en PHP3, mais ils sont bizarrement absents de la documentation de référence :
// Shift the bits of $a $b steps to the left (each step means "multiply by two") $a << $b // Shift the bits of $a $b steps to the right (each step mean "divide by two") $a >> $b
Au passage, on notera qu'on peut utiliser les notations binaires, héxadécimales et octales. Les trois variables représentent la même valeur dans les trois notations (MAXINT).
$a = 017777777777; $b = 0x7fffffff; $c = 2147483647;
Opérateurs de Comparaison
Encore du classique. Sans surprise pour les habitués de la syntaxe C.
$a == $b Egal Résultat vrai si $a est égal à $b $a != $b Différent Résultat vrai si $a est différent de $b $a < $b Inférieur Résultat vrai si $a est strictement inférieur à $b $a > $b Supérieur Résultat vrai si $a est strictement supérieur à $b $a <= $b Inf ou égal Résultat vrai si $a est inférieur ou égal à $b $a >= $b Sup ou égal Résultat vrai si $a est supérieur ou égal à $b
Voir aussi
- L'ensemble des articles concernant le PHP
- Introduction au PHP
- Syntaxe et Constructions
- Types de données
- Opérateurs et Expressions
- Les tableaux - Array
- Autres mots réservés
- Fonctions couramment utilisées



