PHP/Programmazione/Operatori

Indice del libro


Nel linguaggio PHP a fianco ai classici operatori matematici, booleani e logici sono disponibili anche gli operatori unari di incremento e decremento e un operatore ternario. Gli operatori principali sono:

  • matematici (restituiscono e richiedono valori numerici)
    • + somma algebrica
    • - sottrazione o negazione del numero
    • * Moltiplicazione
    • / divisione
    • % modulo (resto della divisione intera)
  • stringa (restituiscono una stringa)
    • . (punto) concatena due stringhe

Gli operatori visti finora hanno inoltre una sintassi particolare nel caso di espressioni come ad esempio

$a = $a + 3;
$b = $b.' stringa';

Queste espressioni, infatti, nelle quali compare la stessa variabile ambo sia a destra che a sinistra dell'uguale, possono essere riassunte in

$a += 3;
$b .= ' stringa';
  • booleani o di confronto (restituiscono un valore boolean)
    • === identicamente uguale (anche del medesimo tipo)
    • == uguale a
    • != diverso da
    • > maggiore di
    • < minore di
    • => maggiore o uguale a
    • <= minore o uguale a
  • logici (restituiscono e operano su boolean)
    • ! corrisponde alla negazione logica ed è un operatore unario (necessita di un solo operando). Restituisce false se l'operando è true, true se viceversa.
    • and o && corrisponde alla congiunzione logica (et). Restituisce true solo se entrambi gli operandi sono veri.
    • or o || corrisponde disgiunzione inclusiva logica (vel). Restituisce true anche se uno sole degli operandi è vero.
    • xor corrisponde alla disgiunzione esclusiva logica (out). Restituisce true solo se uno dei due valori è true e l'altro è false;
  • due operatori molto importanti e comodi in PHP sono gli operatori chiamati di incremento e di decremento ++ e --, che restituiscono un valore numerico e aumentano o diminuiscono il valore della variabile di una unità. È più facile capire il loro funzionamento con un esempio:
$v1 = $v2++; //assegna a $v1 il valore di $v2 e poi incrementa $v2 di 1
$v1 = $v2-- //assegna a $v1 il valore di $v2 e poi decrementa $v2 di 1
$v1 = ++$v2; //incrementa $v2 di 1 e poi assegna a $v1 il valore di $v2 
$v1 = --$v2 //decrementa $v2 di 1 e poi assegna a $v1 il valore di $v2 
  • un altro operatore molto comodo in PHP è l'operatore ternario ? : la cui sintassi è
condizione ? espr1 : espr2

Quando il motore PHP legge questo operatore valuta il valore di condizione: se è vera, restituisce il valore espr1, altrimenti il valore espr2. Un esempio potrebbe rendere più chiaro il tutto:

$var = ($a > $b ? 'a maggiore di b' : 'a minore di b');

Il valore di $var sarà quindi dipendente dal valore booleano dell'espressione $a > $b

L'operatore ternario può essere usato anche per determinare il valore di un parametro da passare ad una funzione.

Ad esempio:

function prova( $valore ) {
   echo $valore;
} 

prova( true  ? "prova 1 " : "prova 2" );
prova( false ? "prova 1 " : "prova 2" );

Il codice sopra riportato darà come output:

prova 1 prova 2