Reja: Funksiyalar


misol. Global uzgaruvchilar



Download 55,87 Kb.
bet4/6
Sana16.02.2023
Hajmi55,87 Kb.
#911923
1   2   3   4   5   6
Bog'liq
Maruza — копия (12)

misol. Global uzgaruvchilar
Bu skript ishidan kuyidagi natijalarni olamiz:
$a=2 funksiyadan tashkarida, $=2 funksiya ishida natija
$a=2 funksiyadan tashkarida, $=4 funksiya ishida natija
Uzgaruvchi global deb e’lon kilinganda, anik global uzgaruvchi uchun kavola tuziladi. Buning uchun bunday yozuv kuyidagiga ekvivalent (GLOBALS massivi mavjud kurinish sokalariga muvofik barcha global uzgaruvchilarni uz ichiga oladi):
$var1 = & $GLOBALS["var1"];
$var2 = & $GLOBALS["var2"];
Bundan kelib chitsadiki, $var1 uzgaruvchini uchirish $_GLOBALS["var1"] global uzgaruvchiini uchirib tashlamaydi.
Statistik uzgaruvchilar
Uzgaruvchilardan fatsat funksiya ichida foydalanish uchun bunda uning ma’nosini satslagan xolda va funksiyadan chitstsandan sung, bu uzgaruvchilarni statistik deb e’lon tsilish kerak. Statistik uzgaruvchilar fatsat funksiyalar ichida kurinadi va dasturni yuklash funksiya doirasidan tashtsariga chitssa uz ma’nosini yutsotmaydi. Bu uzgaruvchilarni e’lon tsilish static kalit suzi yordamida amalga oshiriladi:
static $var1, $var2;
\ar tsanday ma’no statistik uzgaruvchi sifatida taltsin tsilinishi mumkin, fatsat xavola emas.
Misol. Statistik uzgaruvchilardan foydalanish
function Test_s(){
static $a = 1;
// ifoda yoki xavolani uzlashtirib bulmaydi
$a = $a*2;
echo $a;
}
Test_s(); // 2 chitsadi
echo $a; // xech narsa chitsmaydi, zero $a fatsat funksiya ichida kirish yulagi bor
Test_s(); // $a=2 funksiya ichida, shuning uchun funksiya ishi natijasi 4 soni buladi ?>
Qaytariluvchan ma’nolar
Yutsorida misol tsilib keltirilgan barcha funksiyalar biror-bir amal bajarishgan. Bunday xollardan tashtsari, xar tsanday funksiya uz ishi natijasi sifatida tsandaydir tsiymat tsaytaradi. Bu return tasdigi yordamida tsilinadi. ^aytariluvchan tsiymat xar tsanday turda, shu jumladan, ruyxat va ob’ektlar bulishi mumkin. Interpretator funksiya tanasida return komandasiga uchraganda, u darxol uni bajarishni tuxtatadi va funksiya chatsirilgan tsatorga utib ketadi.
Masalan, inson yoshini tsaytaruvchi funksiya tuzamiz. Agar inson vafot etmagan bulsa, yosh joriy yilga muvofits xisoblanadi.
/* agar ikkinchi parametr true kabi xisoblab chitsilsa, u vafot etgan sanaday kurib chitsiladi, */
function Age($birth, $is_dead){
if ($is_dead) return $is_dead-$birth;
else return date("Y")-$birth;
}
echo Age(1971, false); // vыvedet 33
echo Age(1971, 2001); // vыvedet 30 ?>
Bu misolda return funksiyasidan foydalanmasa xam buladi, shunchaki uni chitsarish funksiyasini echo ga almashtiriladi. Aksincha, agar biz funksiya biror-bir tsiymat tsaytaradigan tsilsak (bu misolda inson yoshi), biz dasturda uzgaruvchini bu funksiya tsiymatini istalgan uzgaruvchiga uzlashtirishimiz mumkin.
$my_age = Age(1981, 2004);
Funksiya ishi natijasida fakat bitta kiymat kaytarilishi mumkin. Bir necha kiymatni kiymatlar ruyxati kaytarilgan takdirda olish mumkin (bir ulchamli massiv). Biz inson yoshini kunigacha aniklikda olmokchimiz, deb x,isoblaylik.
function Full_age($b_day, $b_month, $b_year) {
$y = date("Y");
$m = intval(date("m"));
$d = intval(date("d"));
$b_month = intval($b_month);
$b_day = intval($b_day);
$b_year = intval($b_year);
$day = ($b_day > $d ? 30 - $b_day + $d : $d - $b_day);
$tmpMonth = ($b_day > $d ? -1 : 0);
$month = ($b_month > $m + $tmpMonth
? $b_month + $tmpMonth - $m : $m+$tmpMonth - $b_month);
$tmpYear = ($b_month > $m + $tmpMonth ? -1 : 0);
if ($b_year > $y + $tmpYear)
{
$year = 0; $month = 0; $day = 0;
} else {
$year = $y + $tmpYear - $b_year;
}
return array ($day,$month,$year);
}
$age = Full_age("29","06","1986");
echo "Siz $age[2] yosh, $age[1] oylar va $age[0] kunlar"; ?>
Funksiya bir necha kiymatlarni ularni dasturda kayta ishlash uchun kaytarganda, bir amal bilan ma’noni birdaniga bir necha uzgaruvchilarni uzlashtirishga imkon beruvchi list() til konstruktsiyasidan foydalanish kulay buladi. Masalan, yukoridagi misolda funksiyani, uning kiymatiga uzgartirish kiritmay kayta ishlash kuyidagicha bulishi mumkin: // Full_age() funksiya kiritish
list($day,$month,$year) = Full_age("07", "08","1974");
echo "Sizning yoshingiz $year, $month oy va
$day kun";
?>
list() konstruktsiyasini umuman uzgaruvchini uzlashtirish uchun istalgan massiv elementi kiymatidan foydalanish mumkin.
Misol. list() dan foydalanish
$arr = array("first","second");
list($a,$b) = $arr;
// uzgaruvchi $a uzlashtiriladi, birinchi massiv kiymati, $b - ikkinchi echo $a," ",$b;
// «first second» katori keltiriladi ?>

Download 55,87 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2025
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish