Ce sunt variabilele?
Variabilele sunt elemente ce au o anumita valoare la un moment dat. Valoare unei variabile se poate schimba de-a lungul executiei unui script.
Lucrul cu variabile in PHP este foarte usor. Nu trebuie specificat un tip pentru ele (de genul "variabila text", "variabila numerica") ci acesta este determinat in mod automat.
Variabilele sunt diferentiate de celelalte elemente ale limbajului prin caracterul $. Astfel, o variabila are forma $nume. Numele variabilei poate fi orice identificator valid (un text ce contine doar litere, cifre si underscore, fara spatii sau alte caractere; un identificator nu poate incepe cu o cifra).
Declararea variabilelor
In PHP declararea variabilelor se realizeaza in acelasi timp cu initializarea lor (cu atribuirea unei valori de inceput). Atribuirea unei valori se realizeaza cu ajutorul instructiunii de atribuire ce are forma <nume variabila> = <valoare>;
Testeaza
Code: Select all
// variabile numerice
$variabila = 1;
$numar = 0;
// variabile text (stringuri)
Code: Select all
$text = "Salut";
$text2 = 'Ce faci?';
// variabile logice (boolean)
Code: Select all
$stiuPHP = true;
$uitRepede = false;
// vector
Code: Select all
$vectorGol = array();
$vectorS = array( 10,11,12,13 ); // vector simplu
// vector asociativ
Code: Select all
$vector = array(
'luni' => 'Monday',
'marti' => 'Tuesday',
'miercuri' => 'Wednesday'
);
Code: Select all
$vector[ 'joi' ] = 'Thursday';
// vector simplu definit ca asociativ, echivalentul lui $vectorS
Code: Select all
$vectorS2 = array(
0 => 10,
1 => 11,
2 => 12,
3 => 13
Nota: un vector asociativ se diferentiaza de unul normal prin faptul ca are chei alfa-numerice (cuvinte).
Atentie: PHP face distinctie intre literele mari si mici. Astfel, cele 3 variabile de mai jos sunt TOTAL diferite:
Testeaza
Code: Select all
$variabila = "negru";
$vaRiabilA = "alb";
$Variabila = 1;
Se realizeaza la fel ca si declararea prin intermediul instructiunii de atribuire.
Testeaza
Code: Select all
# atribuirea unei valori anume
$variabila = 2;
# copierea valorii de la o alta variabila
Code: Select all
$text = $variabila;
# copierea valorii functioneaza si in cazul vectorilor
# in urma copierii cei 2 vectori vor fi identici
$vectorS = $vectorS2; # toate componentele lui $vectorS2 sunt copiate in $vectorS
# in cazul vectorilor se pot atribui valori separat fiecarei componente
Code: Select all
$vectorS[ 0 ] = 100;
$vectorS[ 3 ] = 10;
Code: Select all
$vector[ 'luni' ] = 'Lundi';
$vector[ 'joi' ] = 'Jeudi';
De obicei nu e nevoie ca variabilele sa fie sterse dupa ce au fost folosite. Totusi, lucrul aceste se poate face in urmatoarele moduri:
Testeaza
Code: Select all
unset( $variabila );
$variabila = null;
Afisarea se realizeaza utilizand oricare din instructiunile de afisare:
Testeaza
Code: Select all
$variabila = "Text";
$randNou = "<br>";
Code: Select all
print $variabila;
print $randNou;
// echivalent cu cele doua instructiuni print
Code: Select all
echo $variabila, $randNou;
Testeaza
Code: Select all
$var1 = 123;
Code: Select all
print "\n print_r: "; print_r($var1); // afiseaza 123
print "\n var_dump: "; var_dump($var1); // afiseaza int(123)
Code: Select all
$var2 = "test";
Code: Select all
print "\n print_r: "; print_r($var2); // afiseaza test
print "\n var_dump: "; var_dump($var2); // afiseaza string(4) "test"
Code: Select all
$var3 = array('aaa', 'bbb', 'ccc');
print "\n print_r: "; print_r($var3); // afiseaza Array ( ... )
print "\n var_dump: "; var_dump($var3); // afiseaza array(3) { ... }
Serializarea unei variabile presupune transpunerea continutului ei intr-o forma ce poate fi stocata cu usurinta ca text simplu. Deserializarea este operatia inversa, prin care o variabila este recreata pe baza unui text provenit de la o serializare. Astfel, o variabila definita in PHP poate fi serializata si apoi scrisa intr-un fisier text sau salvata intr-o baza de date, avand posibilitatea de a o restaura oricand.
Serializarea se face folosind functia serialize care primeste ca parametru o variabila si returneaza un text. Operatia inversa se realiza cu ajutorul functiei unserialize.
Testeaza
Code: Select all
$variabila = array("componenta1", 2, 3);
$ser = serialize($variabila);
Code: Select all
echo $ser, "\n"; // afiseaza a:3:{i:0;s:11:"componenta1";i:1;i:2;i:2;i:3;}
Code: Select all
$des = unserialize($ser);
print_r($des); // afiseaza vectorul initial
O alternativa la serializare si deserializare o constituie transformarea continutului variabilei intr-un format text standard, cum este JSON. Avantajul este ca reconstituirea continutului poate fi facuta de orice proces, nu doar de un script PHP.
____________________________________________________________________________________