Invata PHPcu punctsivirgula.ro

1.
2. Instalare PHP
3. Ce inseamna PHP?
4. Notiuni de baza
5. Variabile. Constante
6. Vectori globali. Constante magice
7. Operatori
8. Structuri repetitive
9. Aplicatii: repetitive
10. Operatii cu vectori
11. Operatii cu siruri
12. Data si timp
13. Functii in PHP
14. Formulare
15. GET vs. POST
16.
17. Upload de fisiere
18. Headere
19. Cookies
C O N T I N U T
Tutorial PHP in limba romana.

Explicatii, exemple si aplicatii in PHP pentru incepatori


Variabile in PHP     !  


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>;

// variabile numerice
$variabila = 1;
$numar = 0;
 
// variabile text (stringuri)
$text = "Salut";
$text2 = 'Ce faci?';
 
// variabile logice (boolean)
$stiuPHP = true;
$uitRepede = false;
 
// vector
$vectorGol = array();
$vectorS = array( 10,11,12,13 ); // vector simplu
 
// vector asociativ
$vector = array( 
	'luni' => 'Monday', 
	'marti' => 'Tuesday',
	'miercuri' => 'Wednesday'
);
 
// definirea unei noi componente a unui vector asociativ
$vector[ 'joi' ] = 'Thursday';
 
// vector simplu definit ca asociativ, echivalentul lui $vectorS
$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:

$variabila = "negru";
$vaRiabila = "alb";
$Variabila = 1;

Atribuirea de valori

Se realizeaza la fel ca si declararea prin intermediul instructiunii de atribuire.

# atribuirea unei valori anume
$variabila = 2;
 
# copierea valorii de la o alta variabila
$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
$vectorS[ 0 ] = 100;
$vectorS[ 3 ] = 10;
 
$vector[ 'luni' ] = 'Lundi';
$vector[ 'joi' ] = 'Jeudi';

Stergerea variabilelor

De obicei nu e nevoie ca variabilele sa fie sterse dupa ce au fost folosite. Totusi, lucrul aceste se poate face in urmatoarele moduri:

unset( $variabila );
$variabila = null;

Afisarea variabilelor

Afisarea se realizeaza utilizand oricare din instructiunile de afisare:

$variabila = "Text";
$randNou = "<br>";
 
print $variabila; print $randNou;
echo $variabila, $randNou;
Gabriel a spus print_r - 07.05.2009

care este diferenta dintre print si print_r ?

Adi a spus Diferenta - 04.02.2010

Diferenta intre print si print_r:
http://codingforums.com/showthread.php?t=174016

bvlucretiu a spus Atribuirea de valori - 22.06.2010

As dori sa stiu daca unei variabile i se poate atribui ca valoare un fisier, de exemplu o poza; daca da, cum?

Alexandru a spus Atribuirea de valori - 05.07.2010

O variabila poate face referire la un fisier.

Afirmatia "a avea ca valoare un fisier" poate avea 2 intelesuri
- variabila poate fi o referinta catre fisier, asa cum am spus mai sus
- variabila poate avea ca valoare continutul fisierului (de exemplu daca este un fisier text), ceea ce este iar posibil.

Cat de curand va fi pusa pe site o lectie despre fisiere, in care vor fi descrise ambele aspecte enumerate.


Adauga un comentariu la aceasta sectiune.

 


Ponturi de PHP     !  

  • Diferenta dintre ghilimele simple si duble la declararea variabilelor
    Ghilimelele duble permite compilatorului sa "citeasca" variabilele ce apar in interiorul textului.
    $today = date( 'd-m-Y' );
    $text1 = "Azi e $today"; 
     
    print $text1; // Azi e 17-07-2008

    Astfel, textul cuprins intre ghilimele duble este procesat inainte de afisare: variabilele sunt cautate iar valoarea lor este afisata in locul numelui.
    In cazul apostrofului, textul este afisat neschimbat, iar variabilele nu sunt interpretate.

    $today = date( 'd-m-Y' );
    $text2 = 'Azi e $today'; 
     
    print $text2; // Azi e $today

  • Verificarea daca o variabila e definita
    Se pot folosi 2 functii: isset si empty .
    // definim o variabila, cealalta definire nu se executa
     
    $var = 0;
    // $var2 = 1;
     
    var_dump( isset($var) ); // bool(true)
    var_dump( isset($var2) ); // bool(false)
     
    var_dump( empty($var1) ); // bool(true), pentru ca 0 este considerat nul
    var_dump( empty($var2) ); // bool(true)
    Atentie, isset verifica daca variabila a fost definita, pe cand empty verifica daca a fost definita si daca are o valoare considerata vida. O variabila este vida daca are urmatoarele valori:
    • "" (text de lungime 0)
    • 0 (cifra 0)
    • "0" (textul "0")
    • null
    • false
    • array() (vector gol)
    Nota: pentru valorile de mai sus, empty returneaza true

  • Operatorul {}
    Pot exista situatii cand anumite variabile trebuie procesate mai inainte decat altele, sau mai inainte de procesarea intregii instructiuni. De exemplu:
    $salut = array(
    	'dimineata' => 'Buna dimineata',
    	'pranz' => 'Buna ziua',
    	'seara' => 'Noapte buna'
    );
     
    print "$salut[ 'pranz' ], vizitatorule"; // eroare

    Modul in care am scris variabila ($salut[ 'pranz' ]) este corect. Doar ca PHP-ul nu "stie" sa vada variabila noastra ca pe un element din vector, sa-i ia valoarea si apoi sa afiseze tot textul. Pentru a rezolva aceasta problema folosim acoladele:

    print "{$salut[ 'pranz' ]}, vizitatorule"; // "Buna ziua, vizitatorule"

    In acest caz spunem compilatorului sa interpreteze mai intai ce este intre acolade (elementul $salut[ 'pranz' ] din vector) si apoi sa afiseze tot textul.
    Ori de cate ori e nevoie ca o variabila sa fie interpretata cu prioritate, ea trebuie pusa intre acolade.

  • Dublu-dolar ($$nume)
    $obiect = 'masina';
     
    $masina = "Chevrolet";
    $avion = "Boeing";
    $tren = "TGV";
     
    print $$obiect; // Chevrolet
    Pentru a intelege ce se intampla, trebuie mentionat ca ultima linie poate fi scrisa astfel:
    print ${$obiect}; // Chevrolet
    In virtutea explicatiei de mai sus a operatorului {}, putem vedea usor ca PHP mai intai extrage valoarea variabilei $obiect ( care este: "masina" ) si apoi afiseaza variabila $masina (care are valoarea "Chevrolet".
lup a spus E true - 04.07.2010

Aveti o contradictie in acest text :-?

"Nota: pentru valorile de mai sus, empty returneaza false"

Cred ca valoarea lui "empty" in aceste cazuri e TRUE.

Alexandru a spus Multumesc, Lup - 05.07.2010

Ai perfecta dreptate. Am corectat.


Adauga un comentariu la aceasta sectiune.

 


Constante     !  

Constantele sunt entitati care nu isi schimba valoarea pe parcursul executiei. Sunt utile pentru a recunoaste usor valorile folosite in cod. De exemplu, e mai usor de inteles urmatorul cod, cand se foloseste o constanta decat daca s-ar folosi cifra 5

define( 'ZILE_LUCRATOARE', 5);
$zile = array( 'luni', 'marti', 'miercuri', 'joi', 'vineri', 'sambata', 'duminica' );
 
print 'Zilele lucratoare sunt: ';
for( $i = 0; $i < ZILE_LUCRATOARE; $i++ ) {
	print $zile[ $i ] . ' ';
}

Asadar constantele de definesc folosind define:

define( 'NUME', "Flo" );
define( 'VARSTA', 10 );
define( "ADEVARAT", true );

Este recomandat ca numele constantelor sa fie scris cu majuscule (pentru a fi mai usor identificate) desi nu este obligatoriu. Atunci cand se folosesc, se specifica doar numele, fara ghilimele sau $:

print "Ma numesc " . NUME;
print " si am " . VARSTA . " ani";

Pentru a verifica daca o constanta este definita, se foloseste functia defined

if( defined( 'NUME' ) ) {
	print "Ma numesc " . NUME;
}
 
if ( !defined( 'VARSTA' ) ) {
	define( 'VARSTA' , 2 );
}
print " Am " . VARSTA . " ani";
Cristi a spus de ce "!defined"? - 18.02.2010

Am observat ca la cel de-al doilea "if" din dexemplu pentru "defined" ai folosit "!" inainte de "defined". Am inteles ca are rol, pentru ca la compilare returneaza un mesaj- "Notice: Constant VARSTA already defined in..."- daca acel semn de exclamare nu mai este, dar care este rolul acestuia?

Cristi a spus Am aflat - 19.02.2010

If(!defined...) inseamna "Daca nu este definita..." Semnul exclamarii este negatia.

Cosmin a spus asa e - 26.03.2010

aveti dreptate :)


Adauga un comentariu la aceasta sectiune.