Abbiamo capito come scrivere variabili, array e come concatenarle o manipolarle. Un aspetto fondamentale è come le variabili possono essere confrontate fra loro, o sommate, moltiplicate, etc.
Gli operatori possono essere logici, aritmetici, di comparazione, di assegnazione, etc. Vediamo quelli principali.
Operatori aritmetici
<?php $a = 5; $b = 8; echo ($a + $b); //output: 13 echo ($a - $b); //output: -3 echo ($a * $b); //output: 40 echo ($a / $b); //output: 0.625 // modulo: cioè il resto della divisione di $a / $b echo ($a % $b); //output: 5 // potenza: cioè $a elevato alla $b echo ($a ** $b); //output: 390625 ?>
PHP mette a disposizione anche gli operatori di incremento e decremento.
++$a
incrementa $a
di 1 e restituisce $a
$a++
restituisce $a
e poi la incrementa di 1
--$a
decrementa $a
di 1 e restituisce $a
$a--
restituisce $a
e poi la decrementa di 1
<?php $a = 10; //$a viene visualizzata e poi incrementata echo $a++; // Viene visualizzato 10, $a vale ora 11 //adesso $a contiene 11 echo $a; $a = 10; //$a viene incrementata e poi visualizzata echo ++$a; // Viene visualizzato 11, $a vale ora 11 //adesso $a contiene 11 echo $a; ?>
Operatori relazionali
Come il nome suggerisce, gli operatori di relazione confrontano due valori. Il risultato di tale comparazione, viene generalmente definita espressione ed ha un valore solitamente boolean.
$a == $b
è TRUE se $a
è uguale a $b
$a === $b
è TRUE se $a
è uguale a $b
e sono dello stesso tipo
$a != $b
è TRUE se $a
è diverso da $b
$a <> $b
è TRUE se $a
è diverso da $b
$a !== $b
è TRUE se $a
è diverso da $b
e non sono dello stesso tipo
$a > $b
è TRUE se $a
è maggiore di $b
$a >= $b
è TRUE se $a
è maggiore o uguale a $b
$a < $b
è TRUE se $a
è minore di $b
$a <= $b
è TRUE se $a
è minore o uguale a $b
$a <=> $b
restituisce un numero minore, uguale o maggiore di zero quando $a
è rispettivamente minore, uguale o maggiore di zero.
<?php $a = 5; $b = 8; $c = "5"; if ($a > $b) { //falso, non avremo output echo "È maggiore"; } if ($a != $b) { //vero, avremo output echo "È diverso"; } if ($a == $b) { //falso, non sono uguali echo "Sono uguali"; } if ($a == 5) { //vero, $a è uguale a 5 echo "$a equivale a 5"; } if ($a === $c) { //falso, non sono dello stesso tipo echo "Sono dello stesso tipo"; } if ($a == $c) { //vero, sono uguali (anche se non dello stesso tipo) echo "Bingo!"; } ?>
Operatori di casting
La funzionalità di casting è in sostanza una funzionalità che ci permette di specificare come trattare a livello di tipo la variabile.
<?php $a = 10; // $a contiene un integer $b = (bool)$a; //trattiamo $a come boolean, di conseguenza anche $b sarà boolean $c = "12"; // $c contiene una stringa, notare le virgolette $d = (int)$c; // a $d assegniamo $c trattata come integer ?>