Di seguito vedremo i diversi operatori utilizzabili nel linguaggio PHP.
ARITMETICA BASE
$a + $b
esegue la somma di $a e $b.
$a - $b
esegue la differenza di $a e $b.
$a * $b
esegue il prodotto di $a e $b.
$a / $b
esegue il quoziente di $a e $b.
$a % $b
esegue $a diviso da $b e restituisce il resto.
CONFRONTARE DUE VARIABILI / VALORI
$a == $b
Uguale. Restituisce TRUE (vero) se $a è uguale a $b.
$a === $b
Identico. Restituisce TRUE se $a è uguale a $b e se sono dello stesso tipo.
$a != $b
Diversi. Restituisce TRUE se $a è diverso da $b.
$a $b
Diversi. Restituisce TRUE se $a è diverso da $b.
$a !== $b
Non identici. Restituisce TRUE se $a è diverso da $b, o se non sono dello stesso tipo.
$a < $b
Minore. Restituisce TRUE se $a è strettamente minore di $b.
$a > $b
Maggiore. Restituisce TRUE se $a è strettamente maggiore di $b.
$a <= $b
Minore o uguale. Restituisce TRUE se $a è minore o uguale a $b.
$a >= $b
Maggiore o uguale. Restituisce TRUE se $a è maggiore o uguale a $b
OPERATORI D'ESECUZIONE
PHP supporta un operatore di esecuzione: backticks (``). PHP cercherà di eseguire il contenuto dei backticks come comando di shell; sarà restituito l'output, che potrà anche essere assegnato ad una variabile.
$output = `ps xa`;
esegue il comando ps xa e assegna l'output alla variabile $output
echo "<.pre>$output";
visualizza il contenuto formattato (con spazi e a capo) della variabile $output, utilizzando il tag PRE
ATTENZIONE: i backticks non sono apostrofi!
OPERATORI D'INCREMENTO
Operatori di pre e post incremento, come nel linguaggio C.
++$a
Pre-incremento. Prima incrementa $a di una unità e poi restituisce $a.
$a++
Post-incremento. Prima restituisce $a e poi incrementa $a di una unità.
--$a
Pre-decremento. Prima decrementa $a di una unità e poi restituisce $a.
$a--
Post-decremento. Prima restituisce $a e poi decrementa $a di una unità.
OPERATORI LOGICI
$a and $b
And. Restituisce TRUE se sia $a che $b sono TRUE. Al posto di and si può anche usare &&.
$a or $b
Or. Restituisce TRUE se uno dei due operatori è TRUE. Al posto di or si può anche usare ||.
$a xor $b
Xor. Restituisce TRUE se uno dei due operatori è TRUE, ma non entrambi.
!$a
Not. Restituisce TRUE se $a non è TRUE.
OPERATORI DI STRINGA
Ci sono due operatori di stringa: l'operatore di concatenazione e quello di assegnazione concatenata.
L'operatore di concatenazione ('.') restituisce la concatenazione dei suoi argomenti a destra e a sinistra.
$a = "Ciao ";
$b = $a . "a tutti!";
Ora la variabile $b contiene il valore "Ciao a tutti"
L'operatore di assegnazione concatenata ('.=') aggiunge alla fine dell'argomento sul lato destro l'argomento sul lato sinistro.
$a = "Ciao ";
$a .= "a tutti";
Ora la variabile $a contiene il valore "Ciao a tutti"
OPERATORI DI CONTROLLO ERRORE
Il carattere @ (at) anteposto ad un espressione permette di ignorare l'errore che potrebbe essere generato nel caso in cui l'espressione non sia corretta.
/*in questo caso se non avessimo messo “@” prima del comando,sarebbe stato segnalato l'errore.*/
$testo = “testo della query”;
$query = @mysql_query($testo);
Se nel file di configurazione “php.ini” la caratterista track_errors è abilitata, quindi a 1, ogni messaggio di errore generato sarà salvato nella variabile globale $php_errormsg, sovrascrivendosi ogni volta.
OPERATORI DI BITWISE
Gli operatori bitwise permettono di modificare specifici bit a 0 o a 1.
Converte automaticamente il numero in binario(o se si tratta di una stringa in caratteri ASCII e da ASCII in binario) e ne confronta bit per bit.
“&” - ($x & $y)
- sono impostati a 1 i bit che sono a 1 sia in $x che inr $y
“|” - ($x | $y)
– sono impostati a 1 i bit che sono a 1 in $x o in $y
“^” - ($x ^ $y)
– sono impostati a 1 i bit che sono a 1 in $x oppure in $y,ma non quelli che sono entrambi a 1
“~” - (~$x)
– inverte tutti i bit,quindi quelli che sono a 1 diventeranno 0 e vicevesa
“>>” - ($x>>$y)
– fà slittare a destra i bit di $x di $y volte
“<<” - ($x<<$y)
- fà slittare a sinistra i bit di $x di $y volte
Esempio:
//setto il valore di $x e $y in base decimale
$x = 34;
$y = 12;
//------------------------------------ & ------------------------------------//
/*
In binario saranno
00100010 $x
00001100 $y
-------------
00000000 0
restituisce 0 perchè nessun bit che è a 1 in $x è a 1 in $y
*/
echo $x & $y;
//------------------------------------ | ------------------------------------//
/*
In binario saranno
00100010 = $x
00001100 = $y
-------------
00101110 = 46
restituisce 46 perchè setta a 1 i bit che sono a 1 in $x o in $y
*/
echo $x | $y;
//------------------------------------ ^ ------------------------------------//
//setto il valore di $x e $y in base decimale
$x = 118;
$y = 43;
/*
In binario saranno
01110110 = $x
00101011 = $y
-------------
01011101 = 93
restituisce 93 perchè setta a 1 i bit che sono a 1 in $x o in $y,ma non quelli che sono entrambi a 1
*/
echo $x ^ $y;
//------------------------------------ ~ ------------------------------------//
//setto il valore di $x in base decimale
$x = 34;
/*
In binario saranno
00100010 = $x
-------------
11011101 = -35
restituisce -35 perchè inverte i bit.
Nel linguaggio binario questa operazione viene chiama complemento a 2
*/
echo ~$x;
//------------------------------------ >> ------------------------------------//
//setto il valore di $x e $y in base decimale
$x = 100;
$y = 4;
/*
In binario saranno
01100100 = $x
00000100 = $y
-------------
00000110 = 6
Restitusce 6 perchè fà shiftare verso destra i bit di 4 volte.
Facendo ciò i bit restanti sarano 00000110,che corrisponde a 6.
*/
echo $x >> $y;
//------------------------------------ << ------------------------------------//
//setto il valore di $x e $y in base decimale
$x = 10;
$y = 3;
/*
In binario saranno
00001010 = $x
00000011 = $y
-------------
01010000 = 80
Restitusce 80 perchè fà shiftare verso sinistra i bit di 3 volte.
Facendo ciò i bit restanti sarano 01010000,che corrisponde a 80.
*/
echo $x << $y;
Per le stringhe converte i carattere in ASCII e poi da ASCII a binario.
Variabili, condizioni, costanti e sintassi generale del codice.