Jump to content

[PHP] Variabile


BAWZIE
 Share

Recommended Posts

PHP dispune de cateva variabile implicite. Acestea sunt pre-populate de PHP in momentul executiei, deci nu trebuie definite sau initializate. Sunt disponibile in orice portiune a codului si in orice script PHP si pot fi folosite fara sa fie nevoie de alte pregatiri. Anumite variabile (ca de exemplu $_POST) au valori doar in anumite situatii (spre exemplu, doar atunci cand sunt folosite formulare).

Mai jos sunt descrise pe scurt aceste variabile, cu mentiunea ca in lectiile urmatoare vor fi folosite in exemple din care veti intelege (usor) rostul lor.

  • $_GET
    Vector asociativ ce contine parametrii transmisi prin URL sau printr-un formular. De exemplu, daca pagina noastra PHP se numeste test.php, un URL de genulhttp://localhost/test.php?nume=Alex&varsta=12&ocupatie=elev
    ar popula variabila $_GET cu urmatoarele valori:
    print_r( $_GET );

    /* afiseaza:
    Array
    (
    [nume] => Alex
    [varsta] => 12
    [ocupatie] => elev
    )
    */Nota: numele parametrilor au rol de cheie in vectorul $_GET.
    Vectorul $_GET este de asemenea populat la folosirea formularelor GET.
  • $_POST
    Similar cu $_GET, doar ca parametrii sunt transmisi prin formulare (forms) - vezi lectia
    Formularepentru detalii.
  • $_REQUEST
    Inglobeaza atat $_GET cat si $_POST.

  • $_SESSION
    Folosita pentru a defini date ce sunt disponibile atata timp cat utilizatorul acceseaza site-ul, indiferent de paginile vizualizate. In mod normal o variabila este definita doar cand un utilizator cere o pagina. La finalul executiei scriptului, valorile variabilelor se pierd (inclusiv variabile $_GET, $_POST, etc). Daca sunt puse in vectorul $_SESSION, valorile pot persista si dupa terminarea executiei scripturilor. Vezi lectia
    Sesiuni pentru detalii.
  • $_SERVER
    Furnizeaza informatii despre server, pagina ceruta si utilizatorul care acceseaza pagina.
    print_r( $_SERVER );/* afiseaza ceva asemanator cu ce e mai jos:
    Array
    (
    [REDIRECT_STATUS] => 200
    [HTTP_VIA] =>
    [HTTP_COOKIE] =>
    [HTTP_REFERER] => http://php.punctsivirgula.ro/
    [HTTP_USER_AGENT] => Mozilla/5.0 ...
    [HTTP_HOST] => php.punctsivirgula.ro
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => ro-ro,ro;q=0.8,en-us;q=0.6,en-gb;q=0.4,en;q=0.2
    [HTTP_ACCEPT_CHARSET] => UTF-8,*
    [HTTP_KEEP_ALIVE] => 300
    [HTTP_CACHE_CONTROL] => max-age=0, max-age=0
    [HTTP_CONNECTION] => Keep-Alive
    [PATH] => /bin:...:/usr/bin:/bin
    [sERVER_SIGNATURE] => Apache/2.2.9 (Unix) ... at php.punctsivirgula.ro Port 80
    [sERVER_SOFTWARE] => Apache/2.2.9 (Unix) ...
    [sERVER_NAME] => php.punctsivirgula.ro
    [sERVER_ADDR] => 89.xx.xx.xx
    [sERVER_PORT] => 80
    [REMOTE_ADDR] => 69.xx.xx.xx
    [DOCUMENT_ROOT] => /.../
    [sERVER_ADMIN] => webmaster@...
    [sCRIPT_FILENAME] => /.../index.php
    [REMOTE_PORT] => 35423
    [REDIRECT_QUERY_STRING] =>
    [REDIRECT_URL] => /arrays/
    [GATEWAY_INTERFACE] => CGI/1.1
    [sERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] =>
    [REQUEST_URI] => /arrays/
    [sCRIPT_NAME] => /index.php
    [php_SELF] => /index.php
    [REQUEST_TIME] => 1250589158
    [argv] => Array()
    [argc] => 0
    )
    */
  • $_ENV
    Afiseaza informatii despre mediul curent in care este instalat si ruleaza interpretorul PHP, despre scriptul curent, etc

  • $_COOKIE
    Folosita pentru a vedea elementele de tip Cookies de la site-ul/pagina curenta, disponibile pe calculatorul utilizatorilor - vezi lectia
    Cookies pentru detalii.
  • $_FILES
    Folosita la incarcarea fisierelor pe server (file uploads) - vezi lectia
    File upload pentru mai multe detalii

Desi toate aceste variabile au si nume alternative, este recomandat sa se foloseasca in forma in care au fost prezentate mai sus.


Constante predefinite 1 comentariu_m.png

In PHP exista o serie de constante ce pot fi folosite in orice moment. Ca si in cazul vectorilor superglobali, acestea sunt populate de catre interpretorul PHP si sunt disponibile in toate fisierele sursa.

  • PHP_EOL - contine caracterul new-line ce poate fi afisat pentru a formata rezultatul unui script pe mai multe linii.echo "Linia 1", PHP_EOL, "Linia 2";
    // alternativ se poate folosi \n, desi cele 2 nu sunt mereu echivalente

    echo "Linia 1", "\n", "Linia 2";
  • TRUE, FALSE - constantele de tip boolean ce pot fi folosite la testele din instructiunea if
  • NULL - referinta nula, utila in "stergerea" unei variabile
  • PHP_OS - contine identificatorul sistemului de operare pe care ruleaza interpretorul PHP
  • PHP_VERSION - contine versiunea completa a interpretorului
  • DEFAULT_INCLUDE_PATH - contine locatiile unde sunt cautate scripturile atunci cand sunt incluse cu include sau require; de obicei, aceasta constanta contine directorul curent si alte cateva locatii
  • E_ERROR, E_WARNING si altele - contin codurile diverselor tipuri de erori ce pot sa apara

Exista si alte constante in distributia de baza a PHP, plus multe altele, definite cu fiecare extensie incarcata, dar nu sunt atat de uzuale ca acestea.


Constante magice 0 comentariu_m.png

Limbajul PHP dispune de o serie de expresii numite "constante magice" care au valori diferite in functie de anumiti parametri (cum ar fi momentul si codul-sursa in care sunt folosite). Denumirea de 'constanta' este improprie, pentru ca, asa cum stiti deja, o constanta nu-si poate schimba valoarea. Nici 'variabile' nu pot fi numite deoarece nu au nevoie de declarare sau initializare, asa ca s-a recurs la un compromis: denumirea 'constante magice' (magic constants).

Cele mai uzuale sunt __LINE__, __FILE__, __FUNCTION__ si __CLASS__. Mai noile __DIR__, __METHOD__, __NAMESPACE__ sau__TRAIT__ sunt mai rar folosite datorita faptului ca au nevoie de o versiune mai noua a interpretorului PHP (cel putin versiunea 5.0 sau chiar 5.4)

Mai jos sunt explicate aceste constante.

  • LINE
    Returneaza linia curenta a scriptului PHP.
    <?php
    # afiseaza numarul liniei pe care este scrisa instructiunea echo

    echo __LINE__; // 187
    ?>
  • FILE
    Contine calea completa catre scriptul PHP care se executa. Daca este folosita intr-un fisier inclus atunci numele acestui fisier este returnat.
    <?php
    # afiseaza numele fisierului executat

    echo __FILE__; // numescript.php
    ?>
  • FUNCTION
    Returneaza numele functie din interiorul careia se foloseste constanta.
    <?php
    # declar o functie care contine o constanta magica
    function spuneNumele() {
    echo __FUNCTION__;
    }

    # apelez functia care va afisa valoarea constantei
    spuneNumele(); // va afisa: spuneNumele
    ?>
  • CLASS
    Returneaza numele clasei curente.
  • DIR
    Contine numele directorului in case este salvat scriptul curent. Aceasta constanta este echivalenta cudirname(__FILE__).
  • METHOD
    Contine numele metodei de clasa din care se foloseste constanta. Se poate folosi numai cu clase.
  • NAMESPACE
    Contine numele spatiului de lucru curent (name-space).
  • TRAIT
    Contine numele trasaturii curente (trait).

Sursa.

Edited by bowS ToV
Link to comment
Share on other sites

Nu mai posta daca dai doar copy - paste.

 

Tu:

"

Desi toate aceste variabile au si nume alternative, este recomandat sa se foloseasca in forma in care au fost prezentate mai sus.


Constante predefinite 1 comentariu_m.png"

 

Te rog frumos sa te uiti peste ce postezi, sa oferi culoare, si unde nu este "code" si "/code", adauga. Acestea nu sunt tutoriale. Sunt copy-paste-uri aiurea. Sper ca m-am facut inteles.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.