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