Xavolani qaytarish
Funksiya uz ishi natijasida shuningdek xavolani biror-bir uzgaruvchiga kaytarishi mumkin. Bu funksiyani kanday uzgaruvchi xavolaga uzlashtirish kerakligini aniklash uchun foydalaniladi. Funksiyadan xavola olish uchun, e’lon oldidan ampersand (&) belgisini yozish kerak buladi va xar safar funksiya chakiruvi paytida uning nomi oldidan xam ampersand (&) yozish kerak buladi. Kupincha funksiya xavolani biror-bir global uzgaruvchiga (yoki uning kismini - xavolani global massiv elementiga), xavolani statistik uzgaruvchiga (yoki uning kismini) yoki xavolani argumentlardan biriga kaytaradi, agar u xavola buyicha berilgan bulsa.
Misol. Xavolani kaytarish
$a = 3; $b = 2;
function & ref($par){
global $a, $b;
if ($par % 2 == 0) return $b;
else return $a;
}
$var =& ref(4);
echo $var, " i ", $b, "
"; // 2 va 2 keltiriladi
$b = 10;
echo $var, " i ", $b, "
"; // 10 va10 keltiriladi ?>
Xavola sintaksisidan foydalanishda bizning misoldagi $var uzgaruvchi uzgaruvchining $b kiymati $ref kaytarilgan funksiyasiga kuchirilmaydi, bu uzgaruvchiga xavola tuziladi. Demak, endi $var va $b teng kuchli uzgaruvchilar va ular bir paytda uzgartiriladi.
Funksiyaning uzgaruvchilari
PHP funksiyalar uzgaruvchilariga kumaklashadi. Bu degani, agar uzgaruvchi nomi oddiy kavslar bilan tugasa, PHP shu kabi nomli funksiyani kidiradi va uni bajarishga xarakat kiladi.
Misol. Funksiyalar uzgaruvchilaridan foydalanish
/* Ikkita oddiy funksiya tuzamiz: Add_sign - katorga imzo kushadi va Show_text -matn katorini chikarib beradi*/
function Add_sign($string,
$sign="Xurmat bilan, Murod"){
echo $string ." ".$sign;
}
function Show_text(){
echo "Xabarni pochtadan junatish<Ьg>";
}
$func = "Show_text"; // ma’noga ega uzgaruvchi tuzamiz, u funksiya nomiga teng Show_text $func(); // u Show_text funksiyani chakiradi
$func = "Add_sign"; // ma’noga ega uzgaruvchi tuzamiz, u funksiya nomiga teng Add_sign $Gips("Xammaga salom
");
// bu funksiyani chakiradi Add_sign "Xammaga salom" parametrli ?>
Bu misolda Show text funksiya shunchaki matn katorini chikaradi. Agar echo maxsus funksiyasi mavjud bulsa, nega buning uchun aloxida funksiya tuzish kerak, deyish mumkin. Gap shundaki, echo(), print(), unset(), include() kabi funksiyalardan funksiyalar uzgaruvchilari sifatida foydalanib bulmaydi. Ya’ni biz yozsak:
$func = "echo "; $func("TEXT"); ?>
Interpretator xatoni kursatadi:
Fatal error: Call to undefined function:
echo() in c:\users\nina\tasks\func\var_f.php on line 2
SHuning uchun yukorida keltirib utilgan istalgan funksiyalardan uzgaruvchilar funksiyasi sifatida foydalanish uchun yukoridagi misoldagi yulni tutdik.
Do'stlaringiz bilan baham: |