Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 13 di 67
  • livello intermedio
Indice lezioni

Operatori aritmetici di PHP

Esaminiamo i più importanti operatori messi a disposizione da PHP per assegnare valori ed eseguire calcoli matematici con particolare attenzione alle regole di priorità tra gli operatori.
Esaminiamo i più importanti operatori messi a disposizione da PHP per assegnare valori ed eseguire calcoli matematici con particolare attenzione alle regole di priorità tra gli operatori.
Link copiato negli appunti

Nella lezione relativa alle espressioni abbiamo introdotto l'operatore di incremento ++ che aumenta di un'unità il valore della variabile a cui viene associato. Questo operatore è soltanto uno tra quelli messi a disposizione da PHP per effettuare operazioni aritmetiche. Vediamo insieme nel dettaglio quali sono gli altri e qual'è il loro funzionamento.

Iniziamo ovviamente dai più semplici, quelli più intuitivi che sicuramente già conosciamo:

$a = 1 + 1; // operatore di somma
$b = 1 - 1; // operatore di sottrazione
$c = 1 * 1; // operatore di moltiplicazione
$d = 2 / 1; // operatore di divisione

Oltre alle quattro semplici operazioni matematiche precedentemente descritte abbiamo a disposizione anche l'operatore modulo, il quale restituisce il resto di una divisione, come nell'esempio seguente:

$e = 5 % 2; // 5 diviso 2 = 2 con il resto di 1 => $e = 1

L'operatore modulo è spesso utilizzato per determinare se un valore è pari o dispari:

$e = 5;
if(($e % 2) == 0) {
    echo "5 è pari";
else {
    echo "5 è dispari";
}

In questo caso la condizione stamperà a schermo 5 è dispari dato che il resto dell'operazione è 1 e non 0. La condizione appena proposta all'interno dell' if è un operatore booleano che tratteremo approfonditamente nella prossima lezione. Per ora utilizziamo invece l'esempio anche per introdurre un'altra regola di priorità: le parentesi (). Queste ultime modificano la priorità delle operazioni in un'espressione proprio come accade nella matematica, valutando prima il valore in esse contenuto e poi il resto dell'espressione. Nel nostro caso viene prima valutato il valore del modulo e poi eseguito il resto dell'espressione.

Tornando agli operatori aritmetici introdotti in questa lezione, essi possono essere utilizzati non solo tra valori scalari ma anche con variabili e funzioni, come già mostrato nella lezione delle espressioni:

$a = 1 + 1;
$b = 4 - 2;
$b = $b + $a; // 2 + 2 = 4

Nell'esempio appena visto possiamo notare la situazione in cui il risultato di un'espressione viene assegnato come risultato alla variabile stessa. La variabile $b, quindi, viene modificata sommando il suo valore iniziale al valore di $a. La stessa espressione può essere riscritta utilizzando gli operatori di assegnazione combinati:

$b += $a; // equivale a $b = $b + $a

Tali operatori possono essere utilizzati con tutte le operazioni aritmetiche finora descritte:

$b += $a; // $b = $b + $a
$b -= $a; // $b = $b - $a
$b *= $a; // $b = $b * $a
$b /= $a; // $b = $b / $a
$b %= $a; // $b = $b % $a

Gli ultimi due operatori aritmetici li abbiamo già analizzati ad inizio lezione e in quella precedente, stiamo parlando degli operatori di incremento e decremento.

$i = 0;
++$i; // incrementa di 1 la variabile $i
$i++; // incrementa di 1 la variabile $i
--$i; // decrementa di 1 la variabile $i
$i--; // decrementa di 1 la variabile $i

La differenza della posizione dell'operatore determina la priorità con cui viene eseguito l'incremento o il decremento. Se si trova a sinistra viene eseguita prima di valutare il resto dell'espressione; se si trova a destra viene eseguita dopo aver valutato l'espressione. Vediamo alcuni esempi a riguardo:

$i = 5;
if( ++$i == 6 ) {
    echo 'La variabile $i è uguale a 6';
} else {
    echo 'La variabile $i è diversa da 6';
}
$i = 5;
if( $i == 6 ) {
    echo 'La variabile $i è uguale a 6';
} else {
    echo 'La variabile $i è diversa da 6';
}
++$i;

I due costrutti condizionali appena visti sembrano del tutto identici, il risultato però è diverso in base alla posizione dell'operatore di incremento. Nel primo caso la variabile viene incrementata prima di verificare che essa sia uguale a 6, quindi verrà eseguito il codice nel primo ramo della if, quello corrispondente alla condizione vera. Nel secondo caso, invece, la variabile viene incrementata al termine dell'espressione quindi verrà valutato 5 == 6 che è falso e quindi verrà eseguito il codice nel ramo dell'else.

Ti consigliamo anche