ePrometeusCorsoLinuxLinux
testi articoli
Testi Articoli  Download
Home | PHP | Espressioni | Comandi | Libreria | Form | Cookie | Database | Config | 
CorsoJava è ora Video! Free for all!
Clicca Qui!
Tutorial PHP
Espressioni
Operatori
Array
Variabili di variabili


<<< Operatori >>>

Abbiamo visto quindi variabili e costanti. Questi elementi si usano in maniera proficua componendole in espressioni, che utilizzano anche gli operatori. Gli operatori del PHP sono i seguenti, in ordine di precedenza (dalla più alta alla più bassa).
Associatività Operatore
a sinistra ,
a sinistra or
a sinistra xor
a sinistra and
a destra print
a sinistra = += -= *= /= .= %= &= != ~= <<= >>=
a sinistra ? :
a sinistra ||
a sinistra &&
a sinistra |
a sinistra ^
a sinistra &
non associativo == !=
non associativo < <= > >=
a sinistra << >>
a sinistra + - .
a sinistra * / %
a destra ! ~ ++ -- (int) (double) (string) (array) (object) @
a destra [
non associativo new

NOTA: Molti concetti di Perl, PHP, Java e JavaScript, soprattutto per quanto riguarda le espressioni, sono ripresi dal linguaggio C. Questi linguaggi hanno in comune i concetti di espressioni con effetti collaterali, associatività e precedenza sugli operatori, operatori booleani a corto circuito. Questi concetti sono discussi in dettaglio nel paragrafo 8.2 su Java, pertanto non verranno riproposti qui. Java però opera una distinzione di tipo forte, per cui certi operatori possono operare solo su interi, altri su booelani eccetera. Bisogna tenere presente che in Perl, PHP e JavaScript non c'è questa distinzione perché c'è un solo tipo di dato scalare che comprende numeri e stringhe: tutte le conversioni di tipo (da numero a stringa e viceversa, cambi di precisione) vengono effettuate implicitamente.

Rispetto a quanto esposto nel capitolo 8 c'è da notare quanto segue:

  • esiste l'operatore . che serve a concatenare le stringhe
  • esiste l'operatore .= che effettua una concatenazione con assegnamento: $a .= $b significa $a = $a . $b
  • gli operatori &, | e ~ eseguono soltanto operazioni binarie e non booleane sugli operandi; ovvero considerano gli operandi come numeri interi (o li convertono) ed esguono le operazioni bit a bit di AND, OR e NOT
  • Esistono and e &&, or e ||, che sono identiche come comportamento (in particolare hanno un comportamento a corto circuito) ma hanno diversi livelli di precedenza.

ATTENZIONE: c'è una fondamentale differenza tra il Perl e il PHP. In Perl non c'è sostanziale differenza tra numeri e stringhe, per cui occorre distinguere tra operazioni numeriche e di stringa, introducendo operatori come == per i numeri e eq per le stringhe, o >= e gt e così via. In PHP invece, gli oggetti contenuti nelle variabili hanno un tipo: se è stato assegnato un intero, sono intere, se è stata assegnata una stringa sono una stringa, se gli è stato assegnato un array sono un array. Pertanto, l'operatore == si comporta come operatore di stringhe quando il primo operando è una stringa, e si comporta come operatore numerico quando il primo operando è un numero. Però questa tipizzazione implicita comporta la necessità di forzare a volte il tipo. A questo scopo esistono gli operatori di conversione (int) (double) eccetera, che servono a garantire che una variabile contenga effettivamente il tipo richiesto.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com