E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale PHP

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  PHP  /  Introducere in PHP (24)

VI. Functii si variabile

20.05.2008
VI. Functii si variabile

In acest tutorial, poti afla o noua metoda de a-ti organiza programul PHP, in care acesta nu este executat liniar, ci modular, prin salturi de la o bucata de cod la alta. Acest tip de programare se bazeaza in mod special pe o structura care poarta numele de "functie" ("function"), care este creata o singura data, dar poate fi executata de mai multe ori.

Total vizualizari: 9078 9078 afisari   |   Comentarii  0   |   Rating   |   (6 voturi)   |   Timp necesar: 20 min 20 min   |   Nivel de cunostiinte necesar: Incepator  Incepator

Sursa:  Zend.com  
Autor:  Vikram Vaswani
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
« 12345 6
comenteaza printeaza

Apel prin valoare, apel prin referinta
In general, argumentele pot fi transmise subrutinelor (functiilor) in doua moduri. Primul se numeste apel prin valoare ("passing by value"). Prin aceasta metoda, se copiaza valoarea unui argument in parametrul formal al unei functii. In acest caz, modificarile asupra parametrului nu au nici un efect asupra argumentului.

Apelul prin referinta ("passing by reference") este cea de-a doua modalitate de a transfera argumente unei functii. In acest caz, adresa unui argument este copiata in locatie de memorie a parametrului. In interiorul functiei, adresa este folosita pentru a accesa argumentul efectiv folosit in apelul functiei. Aceasta inseamna ca modificarile operate asupra parametrului afecteaza si argumentul.

Cu cateva exceptii, PHP foloseste apelul prin valoare pentru transmiterea argumentelor. In general, aceasta inseamna ca argumentele folosite la apelul unei functii nu sunt influentate de codul din corpul functiei.

Sa incepem cu urmatorul exemplu:

<?php 
// creeaza o variabila
$today = "Saturday"; 
// defineste functia
function setDay($day) { 
    $day = "Tuesday"; 
    print "In interiorul functiei: $day<br />"; 
} 
// apeleaza functia pentru a afisa variabila
setDay($today); 
// afiseaza variabila 
print "In exteriorul functiei: $today"; 
?>

Dupa cum se poate observa si in exemplele anterioare, datorita faptului ca argumentul $today a fost transmis prin valoare, scriptul va afisa:

In interiorul functiei: Tuesday
In exteriorul functiei: Saturday

Variabila $today din programul principal va ramane neschimbata deoarece doar continutul ei este transmis functiei.

Exemplul de mai sus poate fi modificat pentru apelul prin referinta:

<?php 
// creeaza variabila  
$today = "Saturday"; 
// definitia functiei care afiseaza variabila 
function setDay(&$day) { 
    $day = "Tuesday"; 
    print "In interiorul functiei: $day<br />"; 
} 
// apeleaza functia 
setDay($today); 
// afiseaza valoare variabilei 
print "In exteriorul functiei: $today"; 
?>

Dupa cum se poate observa, o variabila transmisa prin referinta este precedata de caracterul ampersand (&). Continul variabilei este modificat in interiorul functiei, iar noua valoare este vizibila si la returnarea din functie.

La executia scriptului, mesajul afisat este:

In interiorul functiei: Tuesday
In exteriorul functiei: Tuesday

Cunoscand modalitatea de transmitere a parametrilor prin referinta, putem spune ca, prin intermediul cuvantului cheie global, o variabila este declarata ca referinta astfel incat modificarile asupra ei sunt vizibile si in programul principal.

In urmatoarea sectiune a acestui curs, poti afla cum sa grupezi functii similare in clase si poti citi despre obiecte in PHP5.

Pagina:
« 12345 6
comenteaza printeaza
Alte tutoriale PHP:
Noteaza acest tutorial
Rating tutorial
 
(6 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
5190
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
5145
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4995
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4975
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
4735
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
MySQL Action Script SWF PHP StyleSheet Powerpoint Bridge Swift 3D Gimp XHTML SEO Dreamweaver RoR Excel AJAX Javascript JSON Outlook Illustrator Word XML Ruby on Rails Lightroom Fireworks CSS HTML Photoshop PSD Flash Sony Vegas COREL DRAW Java Fotografie Vista Python Verilog
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software