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).
Pratite Krstaricu na www.krstarica.com