Tehnika Krstarice > Programiranje > PHP - Argumenti funkcija

PHP - Argumenti funkcija

18.07.2001.

U prethodnom PHP prilogu definisali smo šta su to funkcije i kako se koriste, i šta su argumenti jedne funkcije. Inače, razne informacije se funkciji mogu proslediti preko liste argumenata, koja predstavlja zarezom razdvojenu listu varijabli, i/ili konstanti. Podrazumeva se da PHP omogućava prosleđivanje argumenata funkciji u vidu vrednosti; argumenti se mogu još proslediti kao reference (varijable), i kao "podrazumevane vrednosti". Takođe, omogućena je i upotreba listi argumenata varijabilne dužine, ali samo u veziji PHP-a 4. Kod verzije 3 PHP-a, listu argumenata možemo simulirati u vidu niza koji se prosleđuje funkciji. Na primer:

 <?phps
 function preuzimanje_niza($input) {
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
 }
 ?>

Uglavnom se funkcijama prosleđuju konkretne vrednosti, pa tako kada promenimo vrednost argumenta unutar funkcije, neće se promeniti i njegova vrednost van funkcije. Ukoliko želite da se vrednosti prosleđenih argumenata mogu menjati unutar funkcije, prosledite te iste argumente u vidu referenci. A ako želite se argumenti uvek prosleđuju kao reference - moraćete da ispred naziva argumenta dodate znak ampersand (&). Evo i primera prosleđivanja argumenta u vidu reference:

 <?php
 function dodaj_tekst(&$string) {
    $string .= 'i dodatni deo stringa.';
 }
 $str = 'Ovo je string, ' ;
 dodaj_tekst($str);
 echo $str;
 ?>

Rezultat ovog malog skripta će biti ispis - "Ovo je string, i dodatni deo stringa.". Slično prethodnoj metodi, varijablu kao referencu možete proslediti i kada to niste u prvi mah definisali, tada ćete u samom pozivu funkcije dodati znak ampersand (&):

 <?php
 function bilo_sta ($rec) {
    $rec .= ' à ovo je dodatni deo.';
 }

 $str = 'Ovo je string, ';
 bilo_sta ($str);
 echo $str;
 // izlaz ce biti 'Ovo je string, '
 bilo_sta (&$str);
 echo $str; 
 // izlaz 'Ovo jestring, a ovo je dodatni deo.'
 ?>

Slično prethodnom definisanju argumenata je i definisanje "podrazumevanih argumenata" (kao kod jezika C++):

 <?php
 function kuvanje_kafe ($type = "Grand") {
    return "Najbolja je kafa $type.\n";
 }

 echo kuvanje_kafe ();
 echo kuvanje_kafe ("DonCaffe");
 ?>

Izlaz ovog malog skrtipta će biti:

 Najbolja je kafa Grand.
 Najbolja je kafa Doncaffe.

Kao što vidite, ako funkciji ne prosledimo nikakvu vrednost argumenta, koristiće se podrazumevana vrednost (Doncaffe).

Preporučite ovaj članak

Članak još uvek nije ocenjen.