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>";
?>
| 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>";
?>
| 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"; |
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>";
?>
| 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>";
}
?>
| 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>";
}
?>
| 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>";
?>
| 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.