Php
Tipuri de date phpVARIABILE PHP 1. Notiuni de baza In PHP variabilele sunt reprezentate folosind un semn dollar urmat de numele variabilei. Numele variabilelor sunt case-sensitive. In PHP3 variabilele sunt intotdeauna atribuite prin valoare. Cu alte cuvinte, atunci cind o expresie este atribuita unei variabile, intreaga valoare a expresiei originale este copiata in variabila destinatie. Aceasta inseamna ca, de exemplu, dupa atribuirea valorii unei variabile alteia, schimbarea uneia dintre aceste variabile nu are nici un efect asupra celeilalte. PHP4 ofera si un alt mod de a atribui valori valiabilelor: prin referinta. Aceasta inseamna ca noua variabila refera (devine un alias pentru, sau indica catre) variabila originala. Schimbari in variabila noua o afecteaza si pe cea initiala, si invers. Aceasta inseamna de asemenea ca nu sunt realizate copii si astfel atribuirea se realizeaza mai rapid. Pentru a realiza o atribuire prin referinta trebuie doar atasat un ampersand(&) la inceputul variabilei care va fi atribuita (variabila sursa), ca in exemplul urmator: <?php $foo = 'Bob'; // Assign the value 'Bob' to $foo $bar = &$foo; // Reference $foo via $bar. $bar = 'My name is $bar'; // Alter $bar echo $bar; echo $foo; // $foo is altered too. ?> 2 Variabile predefinite PHP furnizeaza un numar larg de variabile predefinite. Multe din aceste variabile, nu pot fi documetate complet deoarece sunt dependente de serverul pe care ruleaza, de versiunea si setarea acestuia precum si de alti factori. Unele din aceste variabile nu vor fi folosite cand PHP ruleaza in linie de comanda. 3. PHP Superglobals $GLOBALS Contine o referinta la fiecare variabila care este in mod curent valabila in scopul global al script-ului. Cheile acestui sir sunt numele variabilelor globale. $_SERVER Reprezinta variabilele setate de serverul de web sau legate direct de mediul de executie al scriptului curent. $_GET Reprezinta variabilele oferite scritpt-ului direct prin HTTP GET. Analog vechiului sir $HTTP_GET_VARS (care inca este valabil, dar depreciat). $_POST Reprezinta variabilele oferite scritpului direct prin HTTP POST. Analog vechiului sir $HTTP_POST_VARS (care inca este valabil, dar depreciat). $_COOKIE
Reprezinta variabilele oferite scritpului direct prin HTTP. Analog vechiului sir $HTTP_COOKIE_VARS (care inca este valabil, dar depreciat). $_FILES Reprezinta variabilele oferite scritpului prin upload-ul de fisiere folosind modul POST din HTTP. Analog vechiului sir $HTTP_POST_FILES (care inca este valabil, dar depreciat). $_ENV Reprezinta variabilele oferite scritpt-ului prin mediu. Analog vechiului sir $HTTP_ENV_VARS (care inca este valabil, dar depreciat). $_REQUEST Reprezinta variabilele oferite scritpt-ului prin mecanismele de input GET, POST, si COOKIE, deci care nu pot fi de incredere. $_SESSION Reprezinta variabilele registrate unei sesiuni a script-ului. Analog vechiului sir $HTTP_SESSION_VARS (care inca este valabil, dar depreciat). 4. Folosirea variabilelor statice O importanta caracteristica a scope-ului variabilei o reprezinta variabila statica. O variabila statica exista in scope-ul functiei locale, dar nu isi pierde valoarea cand executia programului paraseste acest scope. Sa consideram urmatorul exemplu: <?php function Test () ?> Aceasta functie este destul de nefolositoare deoarece de fiecare data este apelata sa seteze valorea 0 variabilelei $a si sa printeze '0'. Instructiunea $a++ care incrementeaza variabila nu serveste nici unui scop deoarce, de indata ce functia iese, variabila dispare. Pentru folosirea unei functii de numarare care nu va mai pierde numaratoarea curenta, variabiala $a este declarata statica. <?php function Test() ?> Astfel, de fiecare data cand functia Test() este apelata, aceasta va afisa valoarea variabilei $a si o va incrementa. Variabilele statice ofera, de asemenea, un mod de a lucra cu functiile recursive. O functie recursiva este o functie care se autoapeleaza. Trebuie avuta grija la scrierea unei functii recursive, deoarece este posibila realizarea unei recursii infinite. Trebuie asigurat un mod de a termina recursia. Urmatoarea functie recursiva simpla numara pana la 10, folosind variabila statica $count pentru a stii cand sa se opreasca: <?php function Test() $count--; ?> 5. Variabile din afara mediului PHP Formulare HTML (GET si POST) Cand un formular este trimis unui scrip PHP, informatiile din acel formular sunt automat transmise scriptului PHP. Sunt mai multe modalitati de a accesa informatia, de exemplu: <form action='foo.php' method='POST'> Name: <input type='text' name='username'><br> Email: <input type='text' name='email'><br> <input type='submit' name='submit' value='Submit me!'> </form> In functie de setarile si preferintele particulare, sunt multe modalitati de a accesa datele din formulare HTML. Cateva exemple: <?php // Available since PHP 4.1.0 print $_POST['username']; print $_REQUEST['username']; import_request_variables('p', 'p_'); print $p_username; // Available since PHP 3. As of PHP 5.0.0, these long predefined // variables can be disabled with the register_long_arrays directive. print $HTTP_POST_VARS['username']; // Available if the PHP directive register_globals = on. As of // PHP 4.2.0 the default value of register_globals = off. // Using/relying on this method is not preferred. print $username; ?> Folosirea unui formular de tip GET este similara, cu deosebirea ca se va folosi variabila predefinita GET in schimb. GET se poate folosi si pentru extragerea informtiilor din QUERY_STRING (informatiile de dupa semnul ? din URL). De exemplu, URL-ul http://www.example.com/test.php?id=3 contine date GET care sunt accesibile prin $_GET['id']. 6. Cookie-uri HTTP PHP ofera un suport transparent pentru Cookies. Cookie-urile reprezinta un mecanism pentru stocarea datelor in browser si astfel se pot identifica utilizetoriicare revin pe o anumita pagina. Cookie-urile se pot seta folosind functia setcookie(). Cookie-urile fac parte din header-ul HTTP, deci functia setcookie() trebuie apelata inainte de trimiterea oricarui continut catre browser. Informatiile de tip Cookie sun apoi stocate in array-urile corespunzatoare, cum ar fi $_COOKIE, $HTTP_COOKIE_VARS ca si in $_REQUEST. Daca se doreste atribuire unor valori multiple unei singure variabile Cookie, aceasta poate fi tratata ca un array. De exemplu: <?php setcookie('MyCookie[foo]', 'Testing 1', time()+3600); setcookie('MyCookie[bar]', 'Testing 2', time()+3600); ?> Aceasta va crea doua variabile cookie separate, cu toate ca MyCookie va fi un singur array.
|