Opérateurs et expressions PHP

Un article de WikiTuto.

Jump to: navigation, search

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

Source

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire