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
?>