luni, 14 martie 2011

PHP variabile de mediu si erori (part6)

Variabile de mediu si erori
Învatati sa obtineti accesul la valorile variabilelor de mediu
Învatati despre depanarea si tratarea erorilor
1. Obtinerea si utilizarea datelor de la o variabila de mediu
Variabilele de mediu sunt folosite pentru stocarea optiunilor si a parametrilor care personalizeaza mediul de aplicatie. Aplicatiile pot obtine accesul la valorile variabilelor de mediu si in functie de acestea îsi pot ajusta comportamentul.
De exemplu, calea de cautare a programelor MS-DOS este stocata într-o variabila de mediu denumita PATH. In general, comenzile sistemelor de operare sunt folosite pentru a configura variabilele de mediu si pentru a stabili valorile acestora. Cu toate acestea, unele aplicatii manipuleaza valorile variabilelor de mediu.
Atât serverul Web Apache, cât si serverul de aplicatie PHP folosesc variabile de mediu pentru a prezenta informatii de stare. Unele dintre cele mai importante variabile de mediu folosite de Apache si PHP sunt rezumate în tabelul de mai jos. Numeroase servere Web, altele decât Apache, furnizeaza o parte din aceste variabile de mediu sau chiar pe toate.
Multe dintre aceste variabile reflecta caracteristicile cererii HTTP care a solicitat executia PHP. Puteti vizualiza toate variabilele de mediu disponibile pentru programele PHP prin invocarea functiei phpinfo() si vizualizarea datelor de iesire generate de aceasta.
Vizualizarea datelor unei variabile de mediu se poate face folosind variabila $_SERVER si o cheie (intre paranteze patrate) ce repreinta numele variabilei de mediu.
De exemplu, pt. afisarea domeniului serverului unde ruleaza scriptul
          echo $_SERVER['SERVER_NAME'];
Variabila de mediu
Descriere
CONTENT_LENGTH
- Lungimea, în octeti, a corpului cererii.
CONTENT_TYPE
- Tipul MIME al datelor din corpul cererii.
DOCUMENT_ROOT
- Calea care constituie radacina arborelui catalogului cu documente al serverului Web.
GATEWAZ_INTERFACE
- Returneaza ersiunea protocolului CGI (Common Gateway Interface) folosit de serverul Web.
HTTP_ACCEPT
- Continutul antetului HTTP Accept.
HTTP_ACCEPT_CHARSET
- Continutul antetului HTTP Accept-Charset:, care specifica seturile de caractere întelese de client.
HTTP_ACCEPT_ENCODING
- Continutul antetului HTTP Accept-Encoding:, care specifica tipurile de continuturi întelese de client.
HTTP_ACCEPT_LANGUAGE
- Continutul antetului HTTP Accept-Language:, care specifica limbajele preferate de client.
HTTP_CONNECTION
- Continutul antetului HTTP Connection:, care indica optiunile solicitate de client.
HTTP_HOST
- Continutul antetului HTTP Host:, care indica numele de gazda, folosit de client la prezentarea cererii.
HTTP_REFERER
- Adresa URL a paginii Web care a trimis clientul la pagina curenta.
HTTP_USER_AGENT
- Continutul antetului HTTP user-Agent, care indica tipul si versiunea browser-ului folosit.
PATH
- Calea de executie asociata cu mediul serverului.
QUERY_STRING
- Sirul de interogare, daca exista, prin care a fost accesata pagina.
REMOTE_ADDR
- Adresa IP a clientului (vizitatorului).
REMOTE_HOST
- Numele de gazda al clientului.
REMOTE_PORT
- Adresa portului clientului de unde a pornit cererea.
REQUEST_METHOD
- Metoda de cerere HTTP folosita; de exemplu, GET, POST, PUT sau HEAD.
REQUEST_URI
- URI folosit pentru accesul la pagina curenta. URI este alcatuit dintr-un URL si un sir optional de interogare.
SCRIPT_FILENAME
- Numele de cale absolut al scriptului curent.
SCRIPT_NAME
- Adresa URL a scriptului curent.
SERVER_ADMIN
- Adresa de e-mail a administratorului serverului Web.
SERVER_HOST
- Numele de gazda asociat serverului Web care prelucreaza cererea.
SERVER_PORT
- Portul folosit de serverul Web pentru comunicatii.
SERVER_PROTOCOL
- Numele si versiunea protocolului prin intermediul caruia s-a executat cererea.
SERVER_SIGNATURE
- Sirul care identifica versiunea serverului Web si numele de gazda folosit pentru prelucrarea cererii.
SERVER_SOFTWARE
- Sirul care identifica programul server Web si versiunea acestuia.
- O lista completa a acestor variabile de mediu o gasiti la pagina oficiala $_SERVER
Puteti obtine accesul la variabila de mediu folosind variabila $_SERVER care este de fapt un Array in care cheile elementelor sunt numele variabilelor de mediu
De exemplu, urmatoarea instructiune echo trimite browserului adresa IP a clientului (vizitatorului):
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo "Adresa dv. IP este $ip";
?>
Afisarea sau nu a acestor variabile globale depinde de permisiunile facute la configurarea serverului PHP si de datele transmise.
2. Depanarea unui script
Uneori, în locul datelor de iesire ale scriptului dumneavoastra, puteti vedea unul din urmatoarele:
Textul scriptului, în loc de datele de iesire ale acestuia
O caseta de dialog, prin care sunteti întrebat daca doriti sa descarcati fisierul care contine scriptul
Un mesaj în care se spune ca scriptul nu exista
Un mesaj în care se spune ca browserul dumneavoastra Web nu are permisiunea de a obtine accesul la script
Un mesaj în care se spune ca scriptul dumneavoastra contine o eroare
La vizualizarea rezultatelor unui script PHP se pot produce numeroase erori, chiar daca scriptul în sine este corect.
- Daca vedeti textul scriptului dumneavoastra sau o caseta de dialog prin care sunteti întrebat daca doriti sa descarcati fisierul care contine scriptul, este posibil ca extensia fisierului script sa fie incorecta sau ca serverul PHP sa nu functioneze. Desi fisierele script PHP trebuie sa aiba, în general, extensia .php, este posibil (dar mai rar) ca un administrator de sistem sa configureze un server PHP astfel încât acesta sa impuna o alta extensie de fisier. Astfel, daca scriptul dumneavoastra esueaza din unul dintre aceste doua motive, luati legatura cu administratorul dumneavoastra de sistem.
- Daca vedeti un mesaj în care se spune ca scriptul nu exista, este posibil ca dumneavoastra sa fi tastat incorect adresa URL. Verificati daca ati tastat corect adresa URL identificata de administratorul dumneavoastra de sistem, precum si daca ati atasat corect la aceasta numele fisierului care contine scriptul, folosind un slash numai daca adresa URL identificata de administratorul dumneavoastra de sistem nu se încheie cu acest caracter.
- Daca vedeti un mesaj în care se arata ca browserul dumneavoastra Web nu are permisiunea de a obtine accesul la script, poate ca este necesar sa modificati permisiunile fisierului script. Pentru a afla cum trebuie procedat, consultati-va cu administratorul de sistem.
- Daca vedeti un mesaj în care se spune ca scriptul dumneavoastra contine o eroare, verificati daca nu a aparut vreuna din urmatoarele probleme:
O eroare de tastare, cum ar fi scrierea gresita a cuvântului echo
O eroare de punctuatie, cum ar fi paranteze, ghilimele sau punct si virgula, lipsa sau inserate gresit
Neincluderea sau includerea eronata a liniilor de delimitare a scriptului, în speta <?php si ?>
Un marcaj de comentariu ( / / ) care lipseste sau care a fost introdus gresit
De exemplu, iata un script care contine un tip de eroare frecvent întâlnit. Puteti identifica eroarea?
<?php
// Acest script contine o eroare de sintaxa
echo "Salut, World Wide Web!;
?>
Din script lipseste caracterul ghilimele duble de închidere, care trebuie sa delimiteze expresia de tip text. Daca încercati sa executati acest script, puteti vedea doar o pagina goala sau o eroare similara celei prezentate în continuare.
Parse error. Parse error in /home/bmccarty/public_html/php/module-01/syntax-error.php On line 7
Mesajul de eroare încearca sa va indice sursa erorii, indicând numarul liniei la care s-a produs eroarea. Totusi, remarcati ca mesajul va îndruma spre linia 7 a unui script care contine numai 4 linii. Din moment ce ghilimelele duble de închidere lipsesc, serverul PHP cauta dincolo de sfârsitul scriptului pentru a gasi ghilimelele duble respective. Ca atare, serverul PHP este oarecum derutat cu privire la sursa erorii.
Morala este aceea ca nu puteti conta în totalitate pe serverul PHP pentru a determina locatia erorii; folositi numarul de linie furnizat de server numai ca îndrumar pentru a depista locatia probabila a erorii.
3. Tratarea erorilor
Modulul PHP poate fi configurat astfel incat sa afiseze erorile intilnite in codul PHP. Acest lucru poate fi foarte util in cazul depanarii programelor. Pentru a activa afisarea erorilor exista doua metode:
- modificarea parametrului display_errors din fisierul de configurare "php.ini"
- folosirea functiei ini_set(‘display_errors’);
In cazul primei metode trebuie sa avem drepturi de administrator pentru a modifica fisierul php.ini. Nu se recomanda setarea parametrului display_errors la valoarea 1(TRUE) in cazul site-urilor de productie; mesajele de eroare afisate nu sint folositoare utilizatorului. Pe de alta parte aceasta ar contribui la marirea riscului unui atac.
A doua metoda consta in folositrea functiei ini_set, care permite unui script sa redefineasca temporar un parametru din fisierul de configurare php.ini.
Consideram un exemplu de cod in care intentionat incercam sa citim variabile care nu exista:
<?php
ini_set('display_errors',1);
echo "Valoarea transmisa este ".$var;
?>
In exemplul de mai sus daca variabila cu nume: "var" nu exista PHP va afisa un mesaj de eroare de genul:
Notice: Undefined variable: var
Putem determina tipurile de erori pe care le semnaleaza PHP folosind functia: error_reporting(). Aceasta preia o constanta care specifica nivelul la care se afiseaza erorile.
error_reporting(E_ALL) - semnaleaza toate tipurile de erori
error_reporting(E_ALL & ~E_NOTICE) - semnaleaza toate erorile in afara de anunturi
error_reporting(0) - dezactiveaza acesta caracteristica.
Exemplu :
<?php
ini_set('display_errors',1);
error_reporting(E_ALL & ~E_NOTICE);

echo "Valoarea transmisa este ".$_GET['orase'];
?>

PHP utilizarea formularelor HTML (part5)

Utilizarea formularelor HTML
Învatati sa trimiteti date prin formulare HTML
Învatati sa preluati date trimise prin GET si POST
1. Proiectarea unui formular
Principalele sarcini în proiectarea unui formular HTML le constituie alegerea controalelor HTML care vor fi incluse în formular, selectarea amplasamentului controalelor si alegerea numelui acestora.
Studiati lectia HTML despre
Formulare, aceasta explica modul de realizare a fiecarui obiect dintr-un formular HTML si va va ajuta sa invatati rolul acestor elemente HTMLL.
2. Crearea unui formular
Un formular HTML trebuie sa contina un buton de expediere, submit, pe care utilizatorul executa clic pentru a trimite datele din formular la scriptul PHP.
Formularele se creaza folosind etichete specifice incadrate in tag-ul <form> </form> ca in exemplul de mai jos:
<form action="script.php" method="post">
Nume:<input type="text" name="nume" />
<br /><input type="submit" name="submit" value="Trmite formular" />
</form>
In browser se va vedea:
Nume:
Fiecare element al formularului trebuie introdus intre etichetele <form> si </form>.
Atributul "action" indica fisierul cu scriptul care va primi datele de la formular si reprezinta una dintre cele mai importante precizari.
Fiecare element, camp dintr-un formular trebuie sa aibe un nume distinct, dat prin atributul "name"; acest nume este folosit de scriptul PHP la care sunt trimise datele, astfel, scriptul PHP recunoaste datele din campul respectiv folosind numele acestuia.
3. Utilizarea metodelor GET si POST
Atributul "method" poate avea doua valori : GET si POST. Diferenta intre metodele GET si POST consta in modul in care informatia din formular este transmisa scriptului care o prelucreaza.
- Metoda GET trimite toate informatiile adunate ca parte a adresei URL; aceste informatii sunt vizibile pentru utilizator.
- Metoda POST transmite informatia intr-o maniera invizibila pentru utilizator si poate transmite o cantitate mai mare de date decat GET.
Folosind exemplul de formular de mai sus, metoda GET va transmite serverului o adresa URL ca cea de mai jos:
http://www.marplo.net/script.php?nume=Popescu
iar in cazul folosirii metodei POST, in URL va aparea doar:
http://www.marplo.net/script.php
Metoda GET permite transmiterea unui volum limitat de informatii catre server; de asemenea nu este recomandata folosirea acestei metode in cazul in care dorim sa transmitem date personale(de exemplu parolele introduse intr-un formular pot fi vizualizate de oricine in browserul de Web).
4. Receptionarea datelor de la un formular HTML
In general datele din formular sunt preluate de scriptul PHP prin urmatoarea formula:
$_POST['nume']   - daca este folosit method="post"
$_GET['nume']   - daca este folosit method="get"
- unde "nume este valoarea atributului name al elementului din formularul HTML.

Sa luam un exemplu practic de formular HTML care trimite date (prin method="post") la un script PHP unde acestea vor putea fi vizualizate.
Salvam scriptul de mai jos intr-un fisier pe care-l numim "test-form.php"
<?php
$nume = $_POST['nume'];
$email = $_POST['email'];
$parola = $_POST['parola'];

echo "Nume = $nume";
echo "<br />E-mail = $email";
echo "<br />Parola = $parola";
?>
Scriem urmatorul cod HTML intr-un alt fisier "form.html", pe care-l salvam in acelasi director cu scriptul PHP de mai sus.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ro" lang="ro">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title> Test-Form </title>
<head>
<body>
<form action="test-form.php" method="POST">
Nume:<input type="text" name="nume" />
<br />Email:<input type="text" name="email" />
<br />Parola:<input type="password" name="parola" />
<br /><input type="submit" name="submit" value="Trmite datele" />
</form>
</body>
</html>
In browser va aparea:
Top of Form

Nume:
Email:
Parola:
Bottom of Form
Completam datele din formular, de exemplu: la Nume : Popescu, la Email : plomar@uv.ro si Parola : parola_mea
Dupa ce am competat datele, apasam clic pe butonul "Trimite datele", acestea vor fi trimise la scriptul PHP "test-form.php", care le va prelucra si va afisa urmatorul rezultat:
Nume = Popescu
E-mail = plomar@uv.ro
Parola = parola_mea
Sa intelegem exemplu de mai sus.
Folosind formularul de mai sus, atributul NAME din fiecare eticheta INPUT atribuie fiecarei casete cu text un nume, astfel scriptul PHP va putea recunoaste datele scrise in casete. In scriptul "test-form".php" vom accesa variabilele:
$nume – va primi informatia introdusa in campul Nume
$email – va primi informatia introdusa in campul Email
$parola – va primi informatia introdusa in campul Parola
Deoarece cunoastem metoda prin care trimitem datele catre scriptul PHP, "POST", am folosit variabila PHP globala _POST pentru a prelua datele din formular:
$_POST['nume']
$_POST['email']
$_POST['parola']
Constructia echo trimite datele de iesire care vor fi afisate de browser
Variabile PHP globale: _GET si _POST reprezinta de fapt variabile de tip array, fiecare element se poate accesa prin cheia a sa; in cazul nostru cheia fiecarui element este data de atributul : NAME al casetelor din formular
5. Trimiterea de date unui script prin adresa URL
In afara de a expedia unui script datele printr-un formular, puteti expedia date cu ajutorul adresei URL a paginii. Pentru aceasta, atasati la sfarsitul adresei URL un semn al întrebarii (?) si apoi includeti o serie de perechi "nume-valoare" (separate prin &), ca in exemplu urmator:
http://www.marplo.net/fisier.php?nume1=valoare1&nume2=valoare2
Exemplul include numai doua perechi "nume-valoare"; cu toate acestea, puteti include oricâte asemenea perechi doriti (separate prin caracterul &), in functie de limita impusa de browser.
Pentru a prelua si folosi datele dintr-o astfel de adresa URL, folositi in interiorul scriptului PHP expresia "$_GET['nume'], ca in exemplu urmator"
$var1 = $_GET['nume1']
$var2 = $_GET['nume2']
Unde "nume1" si "nume2" sunt numele variabilelor din adresa URL, iar "$var1" si "$var2" sunt variabilele care vor fi folosite in scriptul PHP (din "fisier.php") si a caror valori vor fi "valoare1" respectiv "valoare2" continute in adresa URL.
Daca doriti sa trimiteti unui script, prin intermediul adresei sale URL, caractere speciale precum un semn al intrebarii, un semn egal sau un ampersand, se poate crea confuzie.
Pentru a functiona corect, un sir trebuie sa fie codificat URL. Pentru a codifica URL un sir, caracterele speciale se înlocuiesc cu echivalentele lor hexazecimale, precedate de un simbol procent (%). Pentru alte detalii, consultati lectia despre
Utilizarea caracterelor speciale, subtitlul 4 ( Conversia adreselor URL).
De exemplu, forma codificata URL a sirului "la multi ani!" este %22la multi ani%21%22.
Adresa URL rezultanta se numeste "sir de interogare" si nu poate contine spatii. Daca doriti sa trimiteti un spatiu ca parte a unui sir de interogare, trimiteti în locul spatiului un semn plus (+). Iata un exemplu de sir de interogare care codifica numele autorului acestui site:
http://www.marplo.net/script.php?autor=Mar+Plo

PHP variabile si operatori (part4)

Variabile si operatori PHP
Întelegeti diferenta dintre valori literale si variabile
Învatati modul de utilizare a operatorilor pentru combinarea valorilor în expresii
Învatati modul de utilizare a functiilor pentru executarea operatiilor elementare
1. Valori literale si variabile
Categoriile de valori despre care ati învatat pâna acum se numesc valori literale. Deseori, este convenabil sa atribui un nume unei valori, similar procedeului comun folosit în algebra. O valoare cu nume se numeste variabila, deoarece este posibila modificarea valorii asociate numelui. Prin contrast, o valoare literala este fixa.
In limbajul PHP variabilele sunt reprezentate prin semnul $ urmat de numele variabilei.
Numele variabilei este case sensitive, adica conteaza daca numele este scris cu litere mari sau mici. Intotdeuna numele variabilelor trebuie sa inceapa cu o litera sau o liniuta de subliniere (_) si poate fi urmat de litere sau cifre.
Iata cateva exemple de nume de variabila:
$var
$Numar
$_elemente
Pentru a asocia o valoare unei variabile, veti scrie ceea ce se numeste o instructiune de atribuire. Iata un exemplu simplu:
$temperatura = 33.5;
Numele variabilei este urmat de un semn egal (=), care identifica instructiunea ca fiind o instructiune de atribuire. Semnul egal este urmat de valoarea care urmeaza a fi atribuita variabilei, în acest exemplu, valoarea este data de valoarea literala dubla (float) 33.5. Caracterul punct si virgula (;) marcheaza sfârsitul instructiunii.
Exemplul anterior a atribuit unei variabile o valoare-literala. De asemenea, puteti atribui valoarea unei variabile catre o alta variabila, prin scrierea unei instructiuni de atribuire astfel:
$castigator = $nume;
În acest caz, valoarea variabilei $nume devine valoarea variabilei $castigator. Acest procedeu se numeste atribuire prin referinta. Astfel o modificare facuta asupra lui $nume se va propaga automat si asupra variabilei $castigator.
Iata exemplul de mai sus asa cum va aparea intr-un script PHP simplu :
<?php
$nume = "Cosmin";
$castigator = $nume;
echo $castigator;
?>
Rezultatul afisat va fi:
Cosmin
Forma valorii unei variabile se numeste tipul variabilei. Tipul unei variabile se poate modifica daca atribuiti variabilei o valoare de un tip diferit fata de cel al valorii curente a variabilei.
De exemplu, instructiunea de atribuire
$x = 3;
Atribue variabilei $x tipul integer.
Daca instructiunea de atribuire
$x = 3.5;
va fi executata ulterior, variabila $x devine de tip float.
Desi instructiunile de atribuire din limbajul PHP si ecuatiile matematice folosesc ambele semnul egal, cele doua notiuni sunt foarte diferite, deoarece atribuirea nu este acelasi lucru cu egalitatea. Atribuirea este o operatie care înlocuieste o valoare cu o alta. Pe de alta parte, egalitatea este o relatie între doua valori. Când doua valori sunt egale, acestea ramân egale pentru totdeauna. Totusi, puteti atribui o valoare unei variabile si ulterior puteti atribui aceleiasi variabile o alta valoare. Cu alte cuvinte, egalitatea este permanenta; atribuirea nu este.
Variabilele declarate mai sus sunt definite de utilizator. In PHP exista si alte variabile numite "variabile predefinite" care rezida in nucleul PHP, sunt alocate automat de catre modulul PHP, si sunt accesibile in program.
In continuare enumeram citeva dintre aceste "Variabile Superglobale" (accesibile din toate scripturile PHP):
$GLOBALS – contine referinte la variabilele globale disponibile in scriptul curent.
$_SERVER – variabile definite de server sau relative la contextul in care se executa scriptul curent
$_GET – variabile furnizate scriptului prin adresa URL
$_POST – variabile furnizate scriptului prin metoda HTTP POST (in general prin formulare)
$_COOKIE – variabile furnizate scriptului prin HTTP cookie
$_FILES – furnizeaza scriptului fisierele uploadate
$_SESSION – variabile care sunt inregistrate in sesiunea scriptului
2. Operatori
Pentru a va ajuta sa efectuati calcule si prelucrari ale datelor, PHP include o diversitate de operatori si functii utile. Când combinati valorile literale si variabilele cu operatori si functii, construiti ceea ce este cunoscut sub numele de expresii.
Operatorii sunt simboluri specifice care realizeaza o actiune specifica in cadrul unei expresii.
Operatorii actioneaza asupra variabilelor prezente in expresie. De exemplu in cadrul expresiilor matematice vom folosi operatori aritmetici.

$a + $b
Adunare : a+b
$a - $b
Scadere : a-b
$a * $b
Inmultire: a*b
$a / $b
Impartire: a/b
$a%$a
Moule :restul impartirii lui a la b
$a +=$b
Echivalent cu: $a = $a + $b
$a -=$b
Echivalent cu: $a = $a - $b
$a *=$b
Echivalent cu: $a = $a * $b
$a /=$b
Echivalent cu: $a = $a / $b
$a++
Incrementare ; Ecivalent cu $a = $a +1
$a--
Decrementare; Echivalent cu $a = $a -1

O proprietate interesanta a operatorului de împartire este aceea ca returneaza o valoare întreaga daca ambii sai operanzi sunt întregi si rezultatul este un întreg; în caz contrar, returneaza o valoare cu virgula (de tip float). Astfel, instructiunea de atribuire
$x = 10/3;
atribuie valorii $x valoarea cu virgula 3.3333333333333, chiar daca operanzii operatorului de împartire sunt ambii întregi.
Similar operatorului de împartire, operatorul modulo executa o împartire; cu toate acestea, operatorul modulo returneaza restul, nu câtul împartirii. De exemplu, prin împartirea lui 10 la 3 se obtine câtul 3 si restul 1. Deci, instructiunea de atribuire
$x = 10%3;
atribuie variabilei $x valoarea 1.
Operatorii de incrementare $a++ si decrementare $a-- au un efect diferit daca sunt scrisi ++$a respectiv --$a
In primul caz, daca avem de exemplu
$x= $a++;
i-se atribue lui $x valoarea variabilei $a dupa care se efectueaza operatia de incrementare ($a = $a + 1)
Dar daca avem
$x = ++$a=
se efectueaza operatia de incrementare ($a = $a + 1) dupa care i-se atribue lui $x noua valoarea a lui $a
Ca în matematica, PHP evalueaza operatorii de înmultire si de împartire anterior operatorilor de adunare, respectiv scadere. Aceasta caracteristica se numeste precedenta.
Datorita precedentei, instructiunea
$x=1+2*3;
atribuie variabilei $x valoarea 7, chiar daca operatorul de adunare apare înaintea celui de înmultire. Se respecta regulile din matematica. Daca doriti sa controlati precedenta unei expresii, puteti folosi paranteze. De exemplu, instructiunea
$x=(1+2)*3;
atribuie variabilei $x valoarea 9, deoarece partea inclusa între paranteze a expresiei este evaluata prima, asa cum se procedeaza în algebra.
In afara de acesti operatori numerici, PHP include un operator de concatenare a sirurilor (.), denumit uneori operator de unire, deoarece functia sa consta în unirea sirurilor.
Sa observam urmatorul exemplu:
<?php
$var1 = 'Ionescu';
echo 'Numele candidatului este '.$var1;
$var2 = 'Candidat: ';
$var2 .= $var1;
echo "<br />$var2";
?>
Rezutatul afisat va fi:
Numele candidatului este Ionescu
Candidat: Ionescu
In exemplul de mai sus se observa folosirea operatorului de concatenare . (punct)
Acest operator adauga la sfarsitul sirului curent noul sir furnizat ca parametru.
Expresia $a .= 'Sir de test' este echivalenta cu : $a = $a . 'Sir de test'.
3. Functii
În afara de operatori, PHP include functii care executa operatii utile. Iata unele exemple de functii:
abs(x) - Returneaza valoarea absoluta a lui 'x'
ceil(x) - Returneaza valoarea 'x', rotunjita la întregul imediat superior
floor(x) - Returneaza valoarea 'x', rotunjita la întregul imediat inferior
max(x,y,...) - Returneaza valoarea maxima a unui set de valori
min(x,y,...) - Returneaza valoarea minima a unui set de valori
pow(x,n) - Returneaza numarul 'x', ridicat la puterea specificata 'n'
strftime(f) - Returneaza data curenta, formatata conform continutului parametrului 'f'
sqrt(x) - Returneaza radacina patrata a lui 'x'
În afara de acestea, PHP include multe alte functii. Consultati site-ul www.php.net
Majoritatea functiilor necesita una sau mai multe valori de intrare, cunoscute sub numele de argumente. De exemplu, functia "sqrt" necesita un argument (aici este 'x') care specifica valoarea a carei radacina patrata trebuie calculata.
Unele functii, precum min si max, preiau un numar nedefinit de argumente. Alte functii nu necesita nici un fel de argumente. Pentru a putea folosi o functie în mod corespunzator, trebuie sa cunoasteti:
Numele functiei
Actiunea functiei si valoarea returnata de aceasta, daca exista
Numarul argumentelor preluate de functie
Semnificatia fiecarui argument
Iata un exemplu simplu care foloseste o functie pentru calculul lungimii laturilor unui patrat, daca este cunoscuta aria patratului:
$latura=sqrt($arie);
Retineti modul în care argumentul functiei este inclus între paranteze, precum si modul în care functia si argumentul sau sunt folosite într-un mod asemanator cu o valoare literala sau o variabila.
Iata un exemplu care prezinta modul de utilizare a functiei "max", care preia mai multe argumente:
$punctaj_maxim=max($punctaj1, $punctaj2, $punctaj3);
Rezultatul dat variabilei "$punctaj maxim" va fi determinat de functia "max", aceasta determinand valoarea cea mai mare a argumentelor din paranteza.
Observati ca fiecare argument este separat de vecinul sau printr-o virgula.