| Ad_Infinitum |
| Administrator |

 |
 |
| Data inscrierii: 23/Iun/2007 |
| Mesaje: 212 |
|
|
|
 |
 |
 |
|
II.6 Operatori
Operatori aritmetici
Exemplu Numele operaþiei Efect
$a + $b Adunare Suma dintre $a ºi $b
$a - $b Scãdere Diferenþa dintre $a ºi $b
$a * $b Înmulþire Produsul dintre $a ºi $b
$a / $b Împãrþire Împãrþirea lui $a la $b
$a % $b Modul Restul împãrþirii lui $a la $b
Operatorul de împãrþire ('/') întoarce o valoare întreagã (rezultatul împãrþirii întregi) dacã cei doi operatori sunt întregi (sau dacã ºirurile sunt convertite la întregi). Dacã unul din operatori este numãr cu virgulã mobilã, sau rezultatul unei operaþii returneazã o valoare care nu este întreagã, va fi returnatã o valoare în virgulã mobilã.
Operatori de atribuire
Operatorul de atribuire simplã este '='. Are semnificaþia: valoarea expresiei din dreapta se atribuie variabilei din stânga (variabilã simplã sau structuratã).
Putem spune cã instrucþiunea de atribuire este formatã din trei elemente: expresia care urmeazã sã fie atribuitã, operatorul de atribuire '=' ºi variabila destinatarã.
Când este executatã instrucþiunea de atribuire, este evaluatã expresia ºi valoarea rezultatã este depusã la destinaþia specificatã.
Exemplu:
$a = ( $b = 4) + 5;
/* $a este egal cu 9 si $b cu 4 */În operaþiile aritmetice ºi pe ºiruri de caractere se pot folosi ºi operatorii compuºi, aºa cum reiese din exemplul urmãtor (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 cã atribuirea se face prin copiere, adicã expresia din dreapta nu se modificã în urma atribuirii. PHP4 acceptã ºi atribuirea prin referinþã, utilizând sintaxa $var = &$othervar;, dar acest lucru nu este posibil în PHP3. Atribuirea prin referinþã înseamnã cã cele douã variabile referã aceeaºi locaþie de memorie ºi cã modificarea uneia dintre ele o afecteazã ºi pe cealaltã.
Operatori pe biþi
Operatorii pe biþi vã permit sã manipulaþi numerele întregi în reprezentare binarã.
Exemplu Numele operatorului Rezultat
$a & $b ªI (AND) Biþii poziþionaþi pe 1 în $a ªI în $b sunt poziþionaþi la 1 în rezultat
$a | $b SAU (OR) Biþii poziþionaþi pe 1 în $a SAU $b sunt poziþionaþi la 1 în rezultat
$a ^ $b XOR Biþii poziþionaþi pe 1 în $a SAU în $b sunt poziþionaþi la 1 în rezultat
~ $a NOT Biþii care sunt poziþionaþi pe 1 în $a vor fi poziþionaþi pe 0 ºi vice versa
$a << $b Deplasare la stânga Deplaseazã biþii din $a cu $b poziþii spre stânga (fiecare pas înseamnã multiplicare cu 2)
$a >> $b Deplasare la dreapta Deplaseazã biþii din $a cu $b poziþii spre dreapta (fiecare pas înseamnã împãrþire cu 2)
Operatori de comparaþie
Operatorii de comparaþie îngăduie compararea a douã valori.
Exemplu Numele operatorului Rezultat
$a == $b Egal Adevãrat dacã $a este egal cu $b
$a === $b Identic Adevãrat dacã $a este egal cu $b ºi ei sunt de acelaºi tip (numai în PHP 4 )
$a != $b Diferit Adevãrat dacã $a este diferit de $b
$a < $b Mai mic decât Adevãrat dacã $a este mai mic strict decât $b.
$a > $b Mai mare decât Adevãrat dacã $a este mai mare strict decât $b
$a <= $b Mai mic sau egal Adevãrat dacã $a este mai mic sau egal ca $b
$a >= $b Mai mare sau egal Adevãrat dacã $a este mai mare sau egal ca $b
Un alt operator condiþional este operatorul ternar ('?:'), care funcþioneazã ca în C.
( expr1) ? ( expr2) : ( expr3);Aceastã expresie returneazã expresia expr2 dacã expr1 este adevaratã ºi expresia expr3 dacã expresia expr1 este falsã.
Operatori de control al erorilor
PHP are un operator de control al erorilor ºi anume '@'. Când acest operator precede o formă în PHP, absolut orice eroare care poate fi generatã va fi ignoratã. Dacã opþiunea track_errors este activatã, mesajele de eroare generate de expresie vor fi salvate în variabila globalã $php_errormsg. Aceastã variabilã va fi rescrisã la fiecare eroare, deci verificaþi-o la timp dacã doriþi sã o utilizaþi.
Exemplu:
/* Eroare SQL intentionata (apostrofuri suplimentare) */
$res = mysql_query( "select name, code from 'namelist") or
die( "Query failed: error was '$php_errormsg'.");Operatori de execuþie
PHP are un operator de execuþie '``' (backticks). Este diferit de ghilimelele simple.
PHP va încerca sã execute conþinutul dintre aceste ghilimele oblice ca o comandã shell. Rezultatul va fi returnat (nu va fi descãrcat pur ºi 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 ºi limbajul C.
Exemplu Numele operatorului Rezultat
++$a Pre-incrementare Incrementeazã $a cu 1, apoi îl returneazã
$a++ Post-incrementare Returneazã $a, apoi incrementeazã $a cu 1
--$a Pre-decrementare Decrementeazã $a cu 1, apoi îl returneazã
$a-- Post-decrementare Returneazã $a, apoi decrementeazã $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 ªI (AND) Adevãrat dacã $a ªI $b sunt adevãrate
$a or $b SAU (OR) Adevãrat dacã $a SAU $b este adevãrat
! $a NON (NOT) Adevãrat dacã $a este fals
$a xor $b XOR (XOR) Adevãrat dacã $a SAU $b este adevãrat , dar nu amândouã în acelaºi timp
$a && $b SI (AND) Adevãrat dacã $a ªI $b sunt adevãrate
$a || $b SAU (OR) Adevãrat dacã $a SAU $b este adevãrat
Motivul pentru care existã douã tipuri de 'ªI' ºi 'SAU' este cã ele au prioritãþi diferite.
Precedenþa operatorilor
Precedenþa operatorilor specificã ordinea în care se aplicã operatorii. De exemplu, în expresia 1 + 5 * 3 rezultatul este 16 ºi nu 18, cãci înmulþirea ('*') are prioritate superioarã în raport cu adunarea ('+').
Tabelul urmãtor conþine operatorii disponibili în PHP în ordinea crescãtoare a prioritãþilor.
Asociativitate Operatori
Stânga ,
Stânga or
Stânga xor
Stânga ªI
Dreapta print
Stânga =, +=, -=, *=, /=, .=, %=, &=, |=, ^=, ~=, <<=, >>=
Stânga ?:
Stânga ||
Stânga &&
Stânga |
Stânga ^
Stânga &
Non-asociativ ==, !=, ===, !==
Non-asociativ <, <=, >, >=
Stânga <<, >>
Stânga +-
Stânga */, %
Stânga !, ~, ++, --, (int), (double), (string), (array), (obiect), @
Stânga [
Non-asociativ new
Operatori pentru ºiruri de caractere
Existã doi operatori pentru ºiruri de caractere. Inițialul este operatorul de concatenare ('.'), care are ca rezultat concatenarea celor douã argumente. Cel de-al doilea operator este operatorul de atribuire ('.='), care concateneazã argumentul din bucată dreaptã la argumentul din stângã.
$a = "Hello";
$b = $a . "World!"; // $b contine sirul Hello World!
$a = "Hello";
$a .= "World!"; // $a contine sirul Hello World!
--------------------------------------------------------------------------------
Înapoi
Expresii Cuprins Înainte
Structuri de control |
|