Sunteți pe pagina 1din 12

Capitolul 1 Variabile i constante

Capitolul 1 Variabile i constante

Un calculator (sistem de calcul, computer) este o main de prelucrat informaii, conform unei specificaii numit program. Prelucrare Informaii (de intrare)

Informaii (de ieire)

Pentru calculator, informaie nseamn o secven de bii (sau de cifre de 0 i 1). Pentru calculator, orice este o secven de bii. Pentru noi, ns, o astfel de secven de bii este neinteligibil. Oamenii au nevoie de informaii structurate. Pentru a supravieui, oamenii trebuie s se hrneasc, altfel spus au nevoie de un aport de principii nutritive, cum ar fi: proteine, lipide i carbohidrai. Dar, nimeni nu consum, de fapt, proteine, lipide, carbohidrai n stare pur, dect, poate atunci cnd i se face perfuzie. Altfel, consumm doar proteine, lipide, carbohidrai deghizate sau ambalate n nite alimente mai mult sau mai puin apetisante, sau sntoase. i asta pentru c nu nelegem principiile alimentare dect atunci cnd sunt prezentate sub forma alimentelor. Variabila este forma de baz n care este omul poate nelege i manipula informaia, n raport cu calculatorul. Atenie! Aceast definiie este una proprie, deci neacceptat unanim. De fapt, nu cred c exist o definiie unanim acceptat. Definiia pe care am identificat-o n mai multe lucrri sun cam aa: o variabil este o locaie de memorie, care conine o anumit informaie. Consider, totui, c definiia formulat de mine este mai sugestiv, deoarece evideniaz un lucru esenial: variabilele au sens doar pentru oameni, nu pentru calculatoare. Noi suntem cei care avem nevoie de variabile pentru a ne exprima n raport cu calculatorul, ca i pentru a nelege informaiile precizate de acesta. Prin urmare, atunci cnd vorbim cu calculatorul i furnizm informaii de intrare n variabile i l form s ne furnizeze informaiile de ieire tot n variabile (excepiile confirm regula). Pentru a conversa cu calculatorul, trebuie s folosim o limb pe care acesta o poate nelege. Singura limb pe care acesta o nelege este codul-main, o limb, din pcate, extrem de greu de neles pentru oameni. De aceea, n raporturile lor cu calculatoarele, oamenii folosesc limbaje evoluate (de programare, dar nu numai). Pentru a nelege aceste limbaje, ca i pentru a formula rspunsurile ntr-o form uman, calculatoarele au nevoie de programe speciale, numite, dup caz, compilatoare sau interpretoare. Pentru toate aceste limbi (sau limbaje de programare), noiunea de variabil este una fundamental. De fapt, noiunea de variabil este, pentru un limbaj de programare, ceea ce este noiunea de substantiv pentru o limb natural. Variabilele sunt subiectul aciunii, ele sunt obiectele asupra crora se ndreapt prelucrrile specificate prin program. Noiunea de variabil este, deci, una universal, pentru toate limbajele de programare.

Pag. 1

Capitolul 1 Variabile i constante


Dup cum am precizat, un program este o specificaie, este manualul de utilizare al variabilelor care sunt furnizate calculatorului ca date de intrare. El poate avea o form imperativ, deci predicativ (cel mai adesea), dar nu neaprat, n funcie de limbajul respectiv. n general, cele mai cunoscute i utilizate limbaje sunt cele imperative. n cele ce urmeaz, vom vorbi aproape exlusiv despre PHP, care este un limbaj de programare imperativ. Variabilele pot fi de mai multe tipuri: Variabile simple, sau atomice, i Variabile compuse, sau structurate (care sunt compuse, la randul lor, din alte variabile).

Dintre cele dinti, aproape toate limbajele utilizeaz variabile de tip numeric (ntreg, real), caracter sau logic/boolean. Dintre variabilele compuse, utilizate de mai toate limbajele, enumerm irurile (tablourile, array-urile) i irurile de caractere (stringurile), precum i structurile, union-urile, mulimile, sau obiectele tipuri care sunt specifice doar anumitor limbaje. Pentru a putea fi referit (accesat), o variabil trebuie s fie numit. Variabilele sunt precum crilor dintr-o bibliotec: sunt alctuite din informaii astfel structurate nct s fie inteligibile (mai mult sau mai puin), poart un nume i au un anumit loc (o adres) unde ne ateptm s le gsim, n mod obinuit. Mai mult dect att, continund analogia, crile dintr-o bibliotec pot avea diferite grade de accesibilitate, n sensul c pot fi consultate de ctre toi cititorii bibliotecii, sau numai de o parte privilegiat a lor, sau, poate, fiind extrem de rare i valoroase, nu pot fi consultate (aproape) de nimeni. Conveniile de nume pentru variabile sunt specifice diverselor limbaje de programare. De exemplu, n PHP, numele de variabil ncep ntotdeauna cu semnul dolar ($). Execuia unui program nu este altceva dect o prelucrare de variabile. Este evident, deci, c, pe parcursul execuiei unui program, variabilele sufer, in general, transformri, modificri ale coninutului lor informaional. Pot fi create, de asemenea, noi variabile n timpul execuiei programului, pot fi distruse alte variabile, pot fi copiate n alte variabile, sau pot fi redenumite. Sunt ns, i variabile al cror coninut informaional, odat ce este iniializat, nu mai poate fi modificat pe parcursul execuiei programului, acelea se numesc constante. Prin excepie, n PHP, numele constantelor nu ncep cu semnul dolar ($). Pentru a fi operaionale, variabilele trebuie iniializate (trebuie s dobndeasc un anumit coninut informaional). Simpla declarare a unei variabile, permis, n general, de toate limbajele, poate fi, uneori, suficient, pentru ca variabila respectiv s fie iniializat cu o anumit valoare implicit, de genul 0 (pentru o variabil numeric), false (pentru una logic), null (sau nimic) pentru alte tipuri de variabile. Uneori, e posibil i s referim o variabil inexistent, fr ca acest lucru s fie imediat taxat ca o eroare: calculatorul creaz variabila respectiv i o iniializeaz cu valoarea implicit; uneori, un astfel de comportament poate s ne fie util, dar, de cele mai multe ori, nu se ntmpl aa, astfel c, n general, trebuie s avem grij ca toate variabilele utilizate de program s fi fost iniializate cu valorile respective corecte nainte de utilizare. Cum se poate iniializa o variabil? n principal, exist dou modalitti de a iniializa o variabil:

Pag. 2

Capitolul 1 Variabile i constante


Variabila primete o valoare din mediul extern, ca urmare a unei citiri ( de la tastatur, din fiier etc.), sau Variabila i este atribuit o valoare ca urmare a evalurii unei expresii, a unei funcii etc.

Expresiile reprezint, aadar, o modalitate de creare a unor valori care pot fi atribuite unor variabile. n alte cuvinte, cu ajutorul expresiilor, putem modifica valorile variabilelor existente sau putem crea altele noi. O expresie este o colecie de variabile i valori (numite operanzi), structurate cu ajutorul unor simboluri (numite operatori) i care pot fi evaluate la o valoare care poate fi atribuit unei expresii. S ne aducem aminte cum scriam la matematic: x=2+3 dar i: a=b+c n primul exemplu avem o variabil x, care este iniializat cu valoarea 5, suma valorilor 2 i 3, n al doilea variabila a este iniializat cu suma valorilor variabilelor b i c. Este evident c, pentru a putea face acest lucru, trebuie s cunoatem valorile actuale ale variabilelor respective, i s facem substituiile respective necesare. Adic: n al doilea exemplu, ceea ce se adun nu sunt variabilele b i c, ci valorile lor actuale. Uneori, ns, din comoditate, folosim expresii precum suma variabilelor .... Reinem: orice operator acioneaz asupra unui numr de una, dou sau trei variabile (regula e: dou, una i trei fiind excepii), returnnd o anumit valoare care poate fi atribuit unei variabile. Este esenial s reinem c rezultatul evalurii unei expresii poate fi atribuit ntotdeauna unei variabile; c, n program, nu facem acest lucru ntotdeauna, n mod explicit, e alt discuie. n exemplul matematic utilizat mai sus: a=b+c dac, b este 3 i c este 4, lui a i va fi atribuit, dup evaluarea expresiei, valoarea 7. Pare oarecum lipsit de sens s ntrebm: care este acum valoarea variabilei b, deoarece este evident c este 3, ct a fost i la nceput. De fapt, ntrebarea nu este chiar att de lipsit de sens, deoarece: Exist operatori care modific valoarea operanzilor asupra crora acioneaz. De fiecare dat cnd vom ntlni astfel de operatori, vom preciza acest lucru. Convenia de nume pentru variabile: n PHP, numele de variabile ncep cu semnul dolar ($), urmat de un identificator nevid. Un identificator este (aici) o colecie de caractere care includ: litere mari i mici ale alfabetului englez, cifre (de la 0 la 9), i caracterul liniu de subliniere underscore (_), ncepnd cu o liter sau cu un underscore. Identificatorii nu pot conine spaii.

Pag. 3

Capitolul 1 Variabile i constante


Indicaie: Pentru uurina depanrii programului, variabilele trebuie s aib nume inteligibile. Nu uitai c putei folosi nume de variabile orict de lungi. Folosii o convenie unitar de creare a numelor de variabile (de exemplu: $acestaEsteUnNumeLung sau $acesta_este_un_nume_lung). Numele de variabile sunt, n PHP, case-sensitive, ceea ce nseamn c se face distincie ntre literele mici i cele mari. Tipurile variabilelor: n PHP, variabilele exist opt tipuri de variabile: Boolean (logic) reprezint una dintre valorile logice true (adevrat) sau false (fals) Integer reprezint numere ntregi Float sau Double reprezint numere reale, reprezentate n virgul mobil String reprezint iruri de caractere Object reprezint un tip de date creat de utilizator Array reprezint un tip structurat de date, respectiv o colecie de valori care pot fi referite prin intermediul unor chei Resource se refer la anumite tipuri de resurse, vzute ca externe calculatorului NULL reprezint, de fapt, un non-tip (sau, este tipul implicit al oricrei variabile neiniializate).

Domeniul de vizibilitate al unei variabile: n general, un program PHP consist, din punct de vedere fizic, din mai multe fiiere care se apeleaz unul pe altul. De asemenea, chiar n interiorul unui acelai fiier, sunt definite, de regul, mai multe funcii. Fr niciun calificator (cuvnt care modific domeniul implicit de vizibilitate al unei variabile), o variabil este vizibil (poate fi referit/accesat) doar n fiierul sau/i funcia unde a fost definit. Din acest motiv, putem, n general, folosi, n fiiere sau/i funcii diferite, variabile cu acelai nume, fr s existe niciun conflict. Domeniul de vizibilitate al unei variabile poate fi, ns, modificat dup dorina programatorului, dup cum se va arta ulterior. Variabile superglobale Este vorba, de fapt, de anumite variabile-sistem (furnizate, sau generate, la cerere, de ctre sistem), ale cror valori sunt vizibile din orice funcie, i din orice fiier al programului de fapt, din orice program PHP de pe calculator. Astfel de variabile se numesc superglobale i numele lor ncepe cu un semn dolar ($) urmat de un underscore (_). Numele acestor variabile nu pot fi utilizate de programator pentru a-i crea propriile variabile (nu pot fi suprascrise). De altfel, e recomandabil ca programatorii s nu utilizeze nume de variabile care ar putea fi confundate uor cu cele ale variabilelor superglobale (deci, s nu nceap cu $_). Variabilele superglobale sunt, de fapt tablouri de variabile, coninnd diverse informaii despre sistem, program, i aa mai departe. n general, modificarea direct a valorilor acestor variabile nu este posibil, sau, chiar dac este posibil, nu este recomandabil. Exemple de variabile superglobale: $_GET conine variabilele transmise unui script prin metoda GET

Pag. 4

Capitolul 1 Variabile i constante


$_POST conine variabilele transmise unui script prin metoda POST $_COOKIE conine variabilele transmise prin cookies $_FILES conine variabilele transmise prin intermediul unui fiier $_SERVER conine informaii cu privire la localizarea, n sistem, a fiierelor programului etc. $_ENV conine informatii cu privire la starea sistemului $_REQUEST conine toate variabilele transmise prin una din metodele POST, GET sau prin cookies $_SESSION conine toate variabilele nregistrate ntr-o sesiune

Numele PHP este acronimul prescurtarea de la Hypertext PreProcessor (de fapt, acest nume a fost creat pentru a se potrivi cu numele limbajului, acesta din urm numindu-se, la nceputuri, Personal Home Page). Codul nativ PHP nu poate fi verificat, n mod natural, de browserul de internet instalat pe calculatorul local, ci numai dac acesta calculatorul local are instalat un server care are i interpretorul de PHP. n fapt, cnd accesm un fiier PHP, de pe un anumit calculator, browserul trimite serverului codul respectiv PHP, acesta l decodific, fcndu-l compatibil HTML, i astfel browserul poate ncrca si afia coninutul respectivului fiier PHP. Codul PHP poate fi incorporat ntr-un script HTML, dar atenie! dac un fiier conine deopotriv cod HTML i PHP, atunci acel fiier nu poate, n general, s fie neles de browserul respectiv, fr a fi decodificat i transpus integral n cod HTML. De aceea, e mai corect s spunem c fiierele PHP pot conine cod HTML, dect invers, cu toate c, din punct de vedere fizic, codul PHP este incorporat n codul HTML. Fiierele PHP au, n general, extensia .php. Mai rar, sunt recunoscute i fiiere cu extensia php3 sau phtml. n general, browserul de internet deschide orice fiier cu extensia .php i citete textul respectiv, pe care l interpreteaz ca fiind cod HTML, pn cnd ntlnete una din etichetele de deschidere a codului PHP. n acel moment, browserul apeleaz serverul i interpretorul PHP existente pe calculatorul care gzduiete fiierul respectiv dac acestea exist citete i interpreteaz codul PHP, pn ntlnete eticheta de nchidere, dup care continu s citeasc i s interpreteze ceea ce urmeaz ca fiind cod HTML. n afar de etichetele de deschidere i nchidere, codul PHP este format din instruciuni. Nu are nicio importan dac o instruciune este scris pe un rnd sau pe mai multe, dup cum nu conteaz dac pe un rnd sunt scrise mai multe instruciuni sau una singur. Esenial este c, n PHP, orice instruciune se termin, n mod obligatoriu, cu semnul punct i virgul semicolon (;). Dup cum am mai spus, numele variabilelor sunt case-sensitive, dar numele funciilor sunt caseinsensitive.

Pag. 5

Capitolul 1 Variabile i constante


Cel mai simplu program PHP (care nu face nimic) este format doar din etichetele de deschidere i nchidere:

<?php ?>

Observaie: exist i alte tipuri de etichete, dar, pentru c acestea sunt universal acceptate i cele mai rspndite, nu le mai prezint pe celelalte.

Comentarii: n PHP exist trei modaliti de a scrie comentarii: Dac, pe un rnd, apar semnele //, tot ceea ce urmeaz dup ele (pe acel rnd) este comentariu (stil C); Dac, pe un rnd, apare caracterul #, tot ceea ce urmeaz dup ele (pe acel rnd) este comentariu (stil C#); Tot ceea ce este scris ntre caracterele /* i */ (pe oricte rnduri) este comentariu.

Exemplu:
<?php //Acesta este un comentariu #Acesta este un alt comentariu /*Acesta este un comentariu pe mai multe rnduri*/ ?>

Sfat: nu imbricai comentariile. n cazul n care o facei, gndii-v bine la ceea ce urmeaz. Pentru afiarea unui text simplu, fr formatare, putei folosi constructul echo (sau print), dup cum urmeaz:
<?php echo afiseaza un text simplu; ?>

La fel de bine, n programul de mai sus verificai! se pot folosi ghilimelele simple n locul celor duble sau/i print n loc de echo. Determinarea tipului variabilelor: Limbajul PHP este loosely-typed, ceea ce nseamn c tipul variabilelor se determin dinamic, la iniializarea lor. Mai mult, pe aprcursul unul program, variabilele i pot schimba tipul ori de ate ori sunt reiniializate. Acest lucru poate fi puin derutant pentru cei care nva PHP avnd o oarecare experien de programare ntr-un limbaj strongly-typed (Java, C, C++) dar confer PHP-ului o putere i o versatilitate cu adevrat valoroase. S considerm urmtorul program:

Pag. 6

Capitolul 1 Variabile i constante


<?php $test; // declararea unei variabile fara atribuire echo e null? .is_null($test); // verifica daca e null echo <br/>; $test = 7; echo este intreg? .is_int($test); // verifica daca e intreg echo <br/>; $test = sapte; echo este sir de caractere? .is_string($test); // verifica daca e sir de caractere echo <br/>; $test = 3.124; echo este real? .is_double($test); // verifica daca e real echo <br/>; $test = true; echo e boolean? .is_bool($test); // verifica daca e boolean echo <br/>; $test = array(mar, portocala, banana); echo este sir? .is_array($test); // verifica daca este sir echo <br/>; echo este numeric? .is_numeric($test); // verifica daca e numeric numeric echo <br/>; echo este resursa? .is_resource($test); // verifica daca e o resursa echo <br/>; echo este sir? .is_array($test); // verifica daca e sir echo <br/>; ?>

Dac ai lucrat corect, probabil ai obinut urmtorul rezultat:


Notice: Undefined variable: test in e null? 1 este intreg? 1 este sir de caractere? 1 este real? 1 e boolean? 1 este sir? 1 este numeric? este resursa? este sir? 1

Explicaii : 1. ncercarea de a accesa o variabil neiniializat (chiar dac a fost definit) este sancionat cu o notificare de ctre sistem. Notificrile sunt avertismente emise de ctre sistem, ori de cte ori i se pare a fi ntlnit ceva curios. Ele nu inhib execuia programului, iar afiarea lor poate fi dezactivat printr-o opiune de sistem (ceea ce e, totui, nerecomandabil n etapa de dezvoltare depanare). 2. Pentru a verifica dac o anumit variabil e de un anumit tip, se pot utiliza funciile is_*(), care se utilizeaz ca mai sus. 3. Prin reiniializare, o variabil i poate modifica tipul. 4. Constructul echo poate fi utilizat pentru a interpreta cod HTML. Respectivul cod trebuie inclus ntre ghilimele duble. 5. Pentru a concatena dou stringuri, se folosete operatorul punct (.). Dac variabilele care urmeaz a fi concatenate nu sunt de tip string, atunci operatorul acioneaz asupra stringurilor rezultate prin transformarea (cast-ul) variabilelor respective. 6. Variabila boolean true se interpreteaz, prin cast, n stringul 1, n timp ce variabila boolean false se interpreteaz ca (stringul vid). 7. Dup declararea unei variabile, dac nu este iniializat, tipul ei este null. 8. Pentru declararea unui ir, putem folosi funcia array(), dup cum se vede mai sus.

Pag. 7

Capitolul 1 Variabile i constante


9. Pentru aflarea tipului unei variabile putem folosi si funcia gettype() a crei utilizare nu este, totui, ncurajat. 10. Un string poate fi delimitat fie de ghilimele duble, fie de ghilimele simple. Asupra acestei deosebiri vom mai reveni. 11. Pentru setarea tipului unei variabile se poate folosi funcia settype().
<?php $test; // declarare fara atribuire echo gettype($test); // returneaza tipul variabilei echo <br/>; $test = 2.75; echo gettype($test); echo <br/>; echo $test .este real (double)? .is_double($test).<br/>; echo $test .este real (float)? .is_float($test).<br/>; settype ($test, string); echo $test este sir de caractere? .is_string($test).<br/>; settype ($test, integer); echo $test este intreg? .is_integer($test).<br/>; settype ($test, bool); echo $test este boolean? .is_bool($test).<br/>; ?>

Rezultatul afiat va fi:


Notice: Undefined variable: test in ... NULL double 2.75 este real (double)? 1 2.75 este real (float)? 1 2.75 este sir de caractere? 1 2 este intreg? 1 1 este boolean? 1

Observaii: 1. Funcia gettype() returneaz tipul variabilei, chiar dac aceasta nu este (un argument n plus c notificrile nu sunt erori, ci, mai degrab, nedumeriri). 2. Cu ajutorul constructului echo putem afia direct (fr ghilimele) coninutul unor variabile de tip numeric. 3. Exist un singur tip real, i anume double (dar, pe care, n anumite situaii, l putem numi i float). 4. Prin settype(), de la real la integer, se pierde partea fracionar, iar de la integer (de fapt, de la orice numeric) la boolean, 0 e false, i orice altceva e true. 5. Conversiile realizate prin settype() sunt ireversibile, deoarece poate avea loc o pierdere de precizie. Conversii prin cast Spre deosebire de conversiile realizate prin settype(), care sunt definitive i ireversibile, prin mecanismul de cast putem fora o conversie temporar a unei variabile. De fapt, n cazul utilizrii funciei settype(), valoarea obinut prin conversie este suprascris n aceeai variabil, n timp ce, n cazul cast-ului, are o informaia respectiv este depozitat ntr-o zon tampon, putnd fi folosit la iniializarea unei alte variabile, ca n exemplul urmtor:

Pag. 8

Capitolul 1 Variabile i constante


... $var_real = 3.14; //se initializeaza o variabila reala $var_int = (integer) $var_real; // se initializeaza o variabila intreaga /* Acum variabila reala are valoarea 3.14 iar cea intreaga valoarea 3 */ ...

Distrugerea unei variabile Simpla declaraie a unei variabile nu nseamn c ea exist:


$var;

Pentru ca variabila s existe efectiv, ea trebuie iniializat. De exemplu:


$var = 3;

Testarea existenei unei variabile se realizeaz cu ajutorul funciei isset():


echo isset($var); //afiseaza 1(true) daca variabila este initializata

Nu este nicio problem dac variabila nu exist (funcia isset() returneaz false). Pentru a distruge o variabil, folosim funcia unset():
unset ($var);

Nici funcia unset() nu returneaz nicio eroare dac variabila respectiv nu exist. n schimb, genereaz o eroare fatal dac programul ncearc s distrug ceva ce nu este o variabil (nu ncepe cu semnul $).

Iniializarea prin referin Pn acum am studiat diferite cazuri n care o anumit variabil primete o anumit valoare am putea s-i spunem chiar o valoare cash. Sunt, ns i situaii, n care ceea ce primete o variabil nu este o valoare, ci o adres. Adresa la care se afl o anumit variabil care, la rndul ei, are o anumit valoare. Un fel de cec, aadar. O valoare virtual. Pentru a iniializa o variabil prin referin, folosim semnul (operatorul) &:

<?php $var1 = 3; $var2 = $var1; //$var2 este initializata cu valoarea $var1, adica 3 $var3 = &$var1; //$var3 este un alias/o porecla a variabilei $var1 define('CONSTANTA', $var1); //este initializata o constanta cu valoarea lui $var1, //adica 3 echo $var1." ".$var2." ".$var3."<br/>"; //sunt afisate valorile lui $var1, $var2 si $var3 echo CONSTANTA."<br/>"; // este afisata valoarea constantei $var1 = 5; //$var1 este reinitializata echo $var1." ".$var2." ".$var3."<br/>"; //automat, se modifica si valoarea lui $var3 $var2 = 10; //$var2 este reinitializata echo $var1." ".$var2." ".$var3."<br/>"; //schimbarea nu priveste celelalte variabile $var3 = 1; // se reinitializeaza $var3 echo $var1." ".$var2." ".$var3."<br/>"; //schimbarea se reflecta si in $var1 unset($var3); //se distruge aliasul echo "variabila $var1 este definita? ".isset($var1)."<br/>"; //variabila $var1 continua // sa existe

Pag. 9

Capitolul 1 Variabile i constante


echo "variabila $var3 este definita? //referita prin aliasul $var3 ?> ".isset($var3)."<br/>"; //dar nu mai poate fi

Constante Dup cum am mai spus, constantele sunt un tip special de variabile care, odat iniializate, pstreaz aceeai valoare pe toat perioada execuiei programului. Pentru a denumi constantele, se poate utiliza orice identificator. Acesta nu trebuie precedat de semnul dolar ($). Prin convenie, numele de constante folosesc numai litere mari. Astfel, att constanta_mea, ct i CONSTANTA_MEA sunt nume valide de constante, dar prima denumire violeaz cutuma. Spre deosebire de variabile, numele de constante pot fi i case sensitive, i case insensitive, n funcie de modul n care sunt definite. Odat definit, ca fiind case sensitive (sau case insensitive), starea unei constante nu mai poate fi modificat. Implicit, constantele sunt case sensitive. Pot fi definite ca fiind constante: datele de tip integer, double i boolean. Constantele nu se iniializeaz prin atribuire direct. ncercarea de a iniializa o constant astfel (ca i o variabil) conduce la apariia unei erori de sintax:
Parse error: syntax error, unexpected '=' in ...

Aceasta este o eroare fatal (conduce la abandonarea execuiei programului). Pentru a defini o constant, folosii funcia define():
define(CONSTANTA_MEA, 45); // CONSTANTA_MEA este initializata cu valoarea intreaga 45

Folosim aceast definiie pentru a defini constanta CONSTANTA_MEA ca fiind case sensitive (modul implicit). Dac vrem s o definim ca fiind case insensitive (ceea ce presupune c o vom putea referi i prin nume precum Constanta_Mea sau chiar constanta_mea), trebuie s utilizm funcia define() astfel:
define(CONSTANTA_MEA, 45, true);

Cu ajutorul funciei define(), putem defini o constant i pe baza valorii unei variabile:
$var = 45; define(CONSTANTA_MEA, $var); $var = 50; //CONSTANTA_MEA ramane cu valoarea 45

Pentru a afia coninutul unei variabile, putem folosi constructul echo cu variabila ntre ghilimele duble sau fr ghilimele, ca mai jos:
... $var = 1234; ... echo $var; //afiseaza 1234 daca valoarea variabilei $var nu a fost modificata intre timp ... echo $var; //acelasi lucru ...

Pag. 10

Capitolul 1 Variabile i constante

n schimb, includerea numelui unei constante ntre ghilimele duble conduce la afiarea numeleui constantei respective, i nu a valorii ei, deoarece, nefiind precedat de semnul $, interpretorul nu l distinge de un cuvnt obinuit:
define(CONSTANTA_MEA, 45); ... echo CONSTANTA_MEA; // afiseaza 45 echo CONSTANTA_MEA; // afiseaza CONSTANTA_MEA

ncercarea de a reiniializa o constant conduce la apariia unei notificri, i valoarea constantei nu este modificat:
<?php define("VARSTA_MEA", 45); echo "Am ".VARSTA_MEA." ani <br/>"; define("VARSTA_MEA", 48); echo "Am ".VARSTA_MEA." ani <br/>"; ?>

afieaz:
Am 45 ani Notice: Constant VARSTA_MEA already defined in ... Am 45 ani

Nefiind modificabile, constantele nu pot fi ascunse i sunt vizibile din ntreg programul (dar nu nainte de secvena n care au fost definite):
<?php echo "Am ".VARSTA_MEA." ani <br/>"; define("VARSTA_MEA", 45); ?>

afieaz:
Am 45 ani Notice: Constant VARSTA_MEA already defined in ... Am 45 ani Notice: Use of undefined constant VARSTA_MEA - assumed 'VARSTA_MEA' in ... Am VARSTA_MEA ani

Constantele nu pot fi distruse pe timpul execuiei programului. REZUMAT: 1. Noiunea de variabil este una universal apare i are acelai neles n toate limbajele de programare. 2. O constant este o variabil a crei valoare nu se poate modifica n timpul execuiei unui program. 3. Pentru a denumi variantele, respectiv constantele, diferitele limbaje de programare folosesc convenii diferite.

Pag. 11

Capitolul 1 Variabile i constante


4. Variabilele pot fi iniializate prin citire sau atribuire; aceasta din urm poate fi prin valoare i prin referin. Constantele nu pot fi iniializate prin referin. 5. n PHP exist opt tipuri de variabile. 6. Tipul unei variabile poate fi identificat sau verificat prin funcii specifice. 7. Se poate schimba tipul unei variabile prin funcia settype() sau prin cast. Prin schimbarea tipului se poate pierde informaie. 8. Limbajul PHP este loosely-typed. 9. Implicit, variabilele sunt locale. Domeniul de vizibilitate al variabilelor poate fi schimbat, ns, prin calificatori specifici. Exist i variabile superglobale, acestea sunt, de fapt, variabile-sistem. 10. Programele sunt colecii structurare de instruciuni. 11. n PHP, orice instruciune se termin cu un semicolon. 12. Un program PHP se identific prin etichetele corespunztoare, de deschidere i nchidere. 13. n PHP exist trei tipuri de comentarii.

Exerciii: 1. Pentru fiecare dintre cuvintele de mai jos, precizai dac poate fi sau nu numele unei variabile n PHP. n caz negativ, indicai convenia care a fost nclcat. Fiecare cuvnt este scris pe un singur rnd
$$$ VariabilaMea $VariabilaMea $_ O variabil $O variabil $O_variabil $Fisier-primar $a333 $3a $_a35_$_28

2. Cercetai de modul n care se realizeaz toate conversiile ntre tipurile ntreg, boolean, real i string. Realizai un program demonstrativ. 3. Care este rezultatul efecturii urmtoarei secvene de instruciuni:
<?php $var1 = 065; $var2 = 0xf9; $var3 = 3e2; echo "$var1 $var2 $var3"; ?>

Pag. 12

S-ar putea să vă placă și