Operatori nel linguaggio PHP

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 < $bMinore. 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.

Privacy Policy