h4z20zk
Operatori aritmetici
Exemplu Numele operatiei Rezultat
$a + $b Adunare Suma dintre $a si $b
$a - $b Scadere Diferenta dintre $a si $b
$a * $b Inmultire Produsul dintre $a si $b
$a / $b Impartire Impartirea lui $a la $b
$a % $b Modul Restul impartirii lui $a la $b
Operatorul de impartire ('/') intoarce o valoare intreaga
(rezultatul impartirii intregi) daca cei doi operatori sunt intregi
(sau daca sirurile sunt convertite la intregi). Daca unul din operatori
este numar cu virgula mobila, sau rezultatul unei operatii returneaza o valoare
care nu este intreaga, va fi returnata o valoare in virgula mobila.
Operatori de atribuire
Operatorul de atribuire simpla este '='. Are semnificatia: valoarea expresiei
din dreapta se atribuie variabilei din stanga (variabila simpla sau structurata).
Putem spune ca instructiunea de atribuire este formata din trei elemente: expresia
care urmeaza sa fie atribuita, operatorul de atribuire '=' si variabila destinatara.
Cand este executata instructiunea de atribuire, este evaluata expresia
si valoarea rezultata este depusa la destinatia specificata.
Exemplu:
$a = ( $b = 4) + 5;
/* $a este egal cu 9 si $b cu 4 */In operatiile aritmetice si pe siruri
de caractere se pot folosi si operatorii compusi, asa cum reiese din exemplul
urmator (exemplul 2.6.1):
$a = 3;
$a += 5;
/* Atribuie 8 variabilei $a. Corespunde instructiunii $a = $a + 5; */
$a = "Buna";
$b .= " la toata lumea!";
/* Atribuie valoarea "Buna la toata lumea!" variabilei $b
(echivalent cu $b = $b . " la toata lumea!") */De remarcat ca atribuirea
se face prin copiere, adica expresia din dreapta nu se modifica in urma
atribuirii. PHP4 accepta si atribuirea prin referinta, utilizand sintaxa
$var = &$othervar;, dar acest lucru nu este posibil in PHP3. Atribuirea
prin referinta inseamna ca cele doua variabile refera aceeasi locatie
de memorie si ca modificarea uneia dintre ele o afecteaza si pe cealalta.
Operatori pe biti
Operatorii pe biti va permit sa manipulati numerele intregi in reprezentare
binara.
Exemplu Numele operatorului Rezultat
$a & $b SI (AND) Bitii pozitionati pe 1 in $a SI in $b sunt
pozitionati la 1 in rezultat
$a | $b SAU (OR) Bitii pozitionati pe 1 in $a SAU $b sunt pozitionati
la 1 in rezultat
$a ^ $b XOR Bitii pozitionati pe 1 in $a SAU in $b sunt pozitionati
la 1 in rezultat
I $a NOT Bitii care sunt pozitionati pe 1 in $a vor fi pozitionati pe
0 si vice versa
$a << $b Deplasare la stanga Deplaseaza bitii din $a cu $b pozitii
spre stanga (fiecare pas inseamna multiplicare cu 2)
$a >> $b Deplasare la dreapta Deplaseaza bitii din $a cu $b pozitii spre
dreapta (fiecare pas inseamna impartire cu 2)
Operatori de comparatie
Operatorii de comparatie permit compararea a doua valori.
Exemplu Numele operatorului Rezultat
$a == $b Egal Adevarat daca $a este egal cu $b
$a === $b Identic Adevarat daca $a este egal cu $b si ei sunt de acelasi tip
(numai in PHP 4 )
$a != $b Diferit Adevarat daca $a este diferit de $b
$a < $b Mai mic decat Adevarat daca $a este mai mic strict decat
$b.
$a > $b Mai mare decat Adevarat daca $a este mai mare strict decat
$b
$a <= $b Mai mic sau egal Adevarat daca $a este mai mic sau egal ca $b
$a >= $b Mai mare sau egal Adevarat daca $a este mai mare sau egal ca $b
Un alt operator conditional este operatorul ternar ('?:'), care functioneaza
ca in C.
( expr1) ? ( expr2) : ( expr3);Aceasta expresie returneaza expresia expr2 daca
expr1 este adevarata si expresia expr3 daca expresia expr1 este falsa.
Operatori de control al erorilor
PHP are un operator de control al erorilor si anume '@'. Cand acest operator
precede o expresie in PHP, orice eroare care poate fi generata va fi ignorata.
Daca optiunea track_errors este activata, mesajele de eroare generate de expresie
vor fi salvate in variabila globala $php_errormsg. Aceasta variabila va
fi rescrisa la fiecare eroare, deci verificati-o la timp daca doriti sa o utilizati.
Exemplu:
/* Eroare SQL intentionata (apostrofuri suplimentare) */
$res = mysql_query( "select name, code from 'namelist") or die( "Query failed: error was '$php_errormsg'.");Operatori de executie
PHP are un operator de executie '``' (backticks). Este diferit de ghilimelele
simple.
PHP va incerca sa execute continutul dintre aceste ghilimele oblice ca
o comanda shell. Rezultatul va fi returnat (nu va fi descarcat pur si simplu,
ci va putea fi atribuit unei variabile).
Exemplu:
$output = `ls -al`; echo "<pre> $output </pre>";Operatori de incrementare/decrementare
PHP dispune de operatori de incrementare/decrementare ca si limbajul C.
Exemplu Numele operatorului Rezultat
++$a Pre-incrementare Incrementeaza $a cu 1, apoi il returneaza
$a++ Post-incrementare Returneaza $a, apoi incrementeaza $a cu 1
--$a Pre-decrementare Decrementeaza $a cu 1, apoi il returneaza
$a-- Post-decrementare Returneaza $a, apoi decrementeaza $a cu 1
Exemplul 2.6.2:
echo "<h3>Post-incrementare</h3>";
$a = 5; echo "Obtin valoarea 5: " . $a++ . "<br>"; echo "Obtin valoarea 6: " . $a . "<br>";
echo "<h3>Pre-incrementare</h3>";
$a = 5; echo "Obtin valoarea 6: " . ++$a . "<br>"; echo "Obtin valoarea 6:" . $a . "<br>";
echo "<h3>Post-decrementare</h3>";
$a = 5; echo "Obtin valoarea 5: " . $a-- . "<br>"; echo "Obtin valoarea 4: " . $a . "<br>";
echo "<h3>Pre-decrementare</h3>";
$a = 5; echo "Obtin valoarea 4: " . --$a . "<br>"; echo "Obtin valoarea 4: " . $a . "<br>";Operatori
logici
Operatorii logici sunt:
Exemplu Numele operatorului Rezultat
$a and $b SI (AND) Adevarat daca $a SI $b sunt adevarate
$a or $b SAU (OR) Adevarat daca $a SAU $b este adevarat
! $a NON (NOT) Adevarat daca $a este fals
$a xor $b XOR (XOR) Adevarat daca $a SAU $b este adevarat , dar nu amandoua
in acelasi timp
$a && $b SI (AND) Adevarat daca $a SI $b sunt adevarate
$a || $b SAU (OR) Adevarat daca $a SAU $b este adevarat
Motivul pentru care exista doua tipuri de 'SI' si 'SAU' este ca ele au prioritati
diferite.
Precedenta operatorilor
Precedenta operatorilor specifica ordinea in care se aplica operatorii.
De exemplu, in expresia 1 + 5 * 3 rezultatul este 16 si nu 18, caci inmultirea
('*') are prioritate superioara in raport cu adunarea ('+').
Tabelul urmator contine operatorii disponibili in PHP in ordinea
crescatoare a prioritatilor.
Asociativitate Operatori
Stanga ,
Stanga or
Stanga xor
Stanga SI
Dreapta print
Stanga =, +=, -=, *=, /=, .=, %=, &=, |=, ^=, I=, <<=, >>=
Stanga ?:
Stanga ||
Stanga &&
Stanga |
Stanga ^
Stanga &
Non-asociativ ==, !=, ===, !==
Non-asociativ <, <=, >, >=
Stanga <<, >>
Stanga +-
Stanga */, %
Stanga !, I, ++, --, (int), (double), (string), (array), (obiect), @
Stanga a
Non-asociativ new
Operatori pentru siruri de caractere
Exista doi operatori pentru siruri de caractere. Primul este operatorul de concatenare
('.'), care are ca rezultat concatenarea celor doua argumente. Cel de-al doilea
operator este operatorul de atribuire ('.='), care concateneaza argumentul din
partea dreapta la argumentul din stanga.
$a = "Hello";
$b = $a . "World!"; // $b contine sirul Hello World!
$a = "Hello";
$a .= "World!"; // $a contine sirul Hello World!