Operatori artimetici

Gli operatori aritmetici in PHP sono del tutto uguali a quelli usati in matematica.

<?php
$a = 5;
$b = 2;
$c = $a + $b;
echo "<p>la somma di ".$a." e ".$b." fa ".$c."</p>";
$d = $a - $b;
echo "<p>la sottrazione di ".$a." e ".$b." fa ".$d."</p>";
$e = $a * $b;
echo "<p>la moltiplicazione di ".$a." e ".$b." fa ".$e."</p>";
$f = $a / $b;
echo "<p>la divisione di ".$a." e ".$b." fa ".$f."</p>";
$g = $a % $b;
echo "<p>il resto della divisione di ".$a." e ".$b." fa ".$g."</p>";
$h = -$a;
echo "<p>l'opposto di ".$a." è ".$h."</p>";
?>
Operatori aritmetici
Esempio Nome Risultato
-$a Negazione Opposto di $a.
$a + $b Addizione La somma di $a e $b.
$a - $b Sottrazione La differenza di $a e $b.
$a * $b Moltiplicazione il prodotto di $a e $b.
$a / $b Divisione Quoziente di $a e $b.
$a % $b Modulo Il resto di $a diviso $b.

Operatori di assegnazione

Gli operatori di assegnazione servono per definire il valore di una variabile. Il simbolo = si usa per indicare che la variabile a sinistra di esso assume il valore di ciò che è indicato a destra, che può essere un numero, un testo , un'altra variabile o il risultato di una espressione o una funzione. Questa assegnazione è detta per valore.

Il simbolo =& serve per fare un'assegnazione per riferimento, in questo tipo di assegnazione nella variabile a sinistra del simbolo =& viene inserito l'indirizzo (e non il contenuto) della variabile indicata a destra, e quindi al variare della prima varia anche la seconda.

Il simbolo => si usa per indicare la corrispondenza chiave / valore in un array, ciò che si trova alla sua sinistra rappresenta la chiave, ciò che si trova alla sua destra rappresenta il valore.

<?php
$a = 5;
$b = $a;
$c = &$a; 
echo "<p>il valore di \$a è ".$a.", il valore di \$b è ".$b.", il valore di \$c è ".$c. "</p>";
$a = 10;
echo "<p>il valore di \$a è ".$a.", il valore di \$b è ".$b.", il valore di \$c è ".$c. "</p>";
$settimana = array(
  "lun" => "lunedì",
  "mar" => "martedì",
  "mer" => "mercoledì",
  "gio" => "giovedì",
  "ven" => "venerdì",
  "sab" => "sabato",
  "dom" => "domenica",
  );
echo "<p>Nell'array \$settimana alla chiave \"lun\" viene assegnato il valore \"lunedì\", alla chiave \"mar\" viene assegnato il valore \"martedì\" e così via...</p>";
?>
Operatori di assegnazione
Esempio Nome Risultato
$a = 5 Assegnazione l'operando a sinistra assume il valore dell'espressione a destra perciò $a assume il valore 5
$lingue = array(
"it" => "italiano",
ecc...
)
Assegnazione chiave-valore alla chiave "it" (a sinistra della freccia) viene assegnato il valore "italiano" (a destra della freccia) ecc...

$a = "Pippo";
$b = &$a;

Assegnazione per riferimento alla variabile $b viene assegnato non il valore di $a ma il riferimento al suo valore, perciò ogni modifica al valore di $a si rifletterà sul valore di $b

Operatori di incremento/decremento

Gli operatori di incremento e decremento agiscono aumentando o diminuendo il valore di una variabile. Possono farlo prima che questa sia usata, e allora sono detti di pre-incremento / pre-decremento, oppure dopo, e allora sono detti di post-incremento / post-decremento.

<?php 
$a = 5;
echo "<p>la variabile \$a vale ".++$a." -- pre-incremento</p>";
$b = 3;
echo "<p>la variabile \$b vale ".--$b." -- pre-decremento</p>";
$c = 8;
echo "<p>la variabile \$c vale ".$c++." -- post-incremento</p>";
echo "<p>al secondo utilizzo \$c vale ".$c."</p>";
$d = 4;
echo "<p>la variabile \$d vale ".$d--." -- post-decremento</p>";
echo "<p>al secondo utilizzo \$d vale ".$d."</p>";
?>
Operatori di incremento/decremento
Esempio Nome Effetto
++$a Pre-incremento Incrementa $a di una unità, quindi restituisce $a.
$a++ Post-incremento Restituisce $a, quindi incrementa $a di una unità.
--$a Pre-decremento Decrementa $a di una unità, quindi restituisce $a.
$a-- Post-decremento Restituisce $a, quindi decrementa $a di una unità.

Operatori di confronto

Gli operatori di confronto servono per confrontare il valore ed eventualmente il tipo di due variabili. Il risultato di una espressione di confronto è sempre un valore booleano, cioè vero o falso.

Quando si confrontano una variabile di tipo int e una di tipo string esse possono essere uguali, ma non identiche.

<?php 
$a = 5;
$b = 6;
$c = "6";
echo "<p>la variabile \$a vale il numero ".$a.", la variabile \$b vale il numero ".$b." la variabile \$c vale la stringa ".$c."<p/>";
if ($a == $b) {
  echo "<p>le variabili \$a e \$b sono uguali</p>";
  }
  else {
    echo "<p>le variabili \$a e \$b non sono uguali</p>";
  }

if ($b == $c) {
   echo "<p>le variabili \$b e \$c sono uguali</p>";
}
else {
  echo "<p>le variabili \$b e \$c non sono uguali</p>";
}

if ($b === $c) {
  echo "<p>le variabili \$b e \$c sono identiche, cioè hanno lo stesso valore e sono dello stesso tipo</p>";
}
else {
  echo "<p>le variabili \$b e \$c non sono identiche, cioè hanno lo stesso valore ma non sono dello stesso tipo perchè \$b è un numero mentre \$c è una stringa</p>";
}
if ($a != $b) {
  echo "<p>la variabile \$a è diversa dalla variabile \$b</p>";
}
else {
  echo "<p>la variabile \$a non è diversa dalla variabile \$b</p>";
}
if ($b <> $c) {
  echo "<p>la variabile \$b è diversa dalla variabile \$c</p>";
}
else {
  echo "<p>la variabile \$b non è diversa dalla variabile \$c</p>";
}
if ($b !== $c) {
  echo "<p>la variabile \$b non è identica alla variabile \$c</p>";
}
else {
  echo "<p>la variabile \$b è identica alla variabile \$c</p>";
}
if ($a > $b) {
  echo "<p>la variabile \$a è maggiore della variabile \$b</p>";
}
else {
  echo "<p>la variabile \$a è minore della variabile \$b</p>";
}
if ($b <= $c) {
  echo "<p>la variabile \$b è minore o uguale alla variabile \$c</p>";
}
else {
  echo "<p>la variabile \$b non è minore o uguale alla variabile \$c</p>";
}
 ?>
Operatori di confronto
Esempio Nome Risultato
$a == $b Uguale TRUE se $a è uguale a $b
$a === $b Identico TRUE se $a è identico a $b
$a != $b Diversi TRUE se $a è diverso da $b
$a <> $b Diversi TRUE se $a è diverso da $b
$a !== $b Non identici TRUE se $a è diverso da $b, o se non sono dello stesso tipo.
$a < $b Minore TRUE se $a è strettamente minore di $b.
$a > $b Maggiore TRUE se $a è strettamente maggiore di $b.
$a <= $b Minore o uguale TRUE se $a è minore o uguale a $b.
$a >= $b Maggiore o uguale TRUE se $a è maggiore o uguale a $b.

Operatori logici

Gli operatori logici si usano nelle istruzioni condizionali. Funzionano convertendo in valori booleani gli elementi dell'espressione e poi eseguendo un confronto.

Gli operatori && e AND svolgono la stessa funzione ma && ha precedenza su AND, la stessa cosa vale per || e OR, || ha la precedenza su OR.

<?php 
$a = 5;
$b = 6;
$c = 7;
$d = 8;
echo "<p>la variabile \$a vale ".$a.", la variabile \$b vale ".$b." la variabile \$c vale ".$c.", la variabile \$d vale ".$d."<p/>";
if ($a < $b AND $c < $d) {
  echo "<p>5 è minore di 6 e 7 è minore di 8, entrambi i confronti sono veri quindi l'espressione è vera</p>";
}
if ($a <$b AND $c > $d) {
  echo "<p>5 è minore di 6 ma 7 non è maggiore di 8, uno solo dei due confronti è vero quindi l'espressione è falsa e le istruzioni contenute all'interno del costrutto if non saranno stampate a video</p>";
}
if ($a <$b OR $c > $d) {
  echo "<p>5 è minore di 6 anche se 7 non è maggiore di 8, almeno il primo confronto è vero quindi l'espressione è vera</p>";
}
if ($a <$b XOR $c > $d) {
  echo "<p>5 è minore di 6 e 7 non è maggiore di 8, soltanto uno dei due confronti è vero quindi l'espressione è vera</p>";
}
 ?>
Operatori logici
Esempio Nome Risultato
$a and $b And TRUE se $a e $b sono entrambe TRUE.
$a or $b Or TRUE se $a o $b è TRUE.
$a xor $b Xor TRUE se $a o $b è TRUE, ma non entrambe.
! $a Not TRUE se $a non è TRUE.
$a && $b And TRUE se $a e $b sono entrambe TRUE.
$a || $b Or TRUE se $a o $b è TRUE.

Operatori di stringa

Gli operatori di stringa servono per concatenare, cioè unire, più stringhe.

<?php 
$a = "Bianco ";
$b = "Rosso ";
$c = "e Verdone";
$d = $a.$b.$c;
echo "<p>".$d."</p>";
$e = "Bianco ";
$e .= "Rosso ";
$e .= "e Verdone";
echo "<p>".$e."</p>";
 ?>
Operatori di stringa
Esempio Nome Risultato
$a = "Hello ";
$b = $a . "World!";
Concatenazione $b contiene la concatenazione di $a e la parola "World!", quindi "Hello World!"
$a = "Pippo ";
$a .= "Pluto";
Assegnazione concatenata $a contiene il suo stesso valore concatenato alla parola "Pluto", quindi $a vale "Pippo Pluto"

Operatore di controllo errori

L'operatore di controllo errori @ serve per evitare che appaiano a schermo i messaggi di errore prodotti dall'espressione davanti a cui viene posto. Se la funzione track_errors è abilitata nel file php.ini l'errore generato viene salvato nella variabile globale $php_errormsg. Questa variabile viene sovrascritta ad ogni errore perciò contiene solo l'ultimo messaggio generato.