Reja: Funksiyalar



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


12-ma’ruza. PHP da funksiyalar
Reja:

  1. Funksiyalar

  2. Funksiyalarning argumentlari

  3. Uzgaruvchan uzunlik argumentlari ruyxatlari

  4. Funksiyalar ichida uzgaruvchilardan foydalanish

  5. Funksiyaning uzgaruvchilari

  6. Ichki joylashgan (ichma-ich) funksiyalar

Funksiyalar
Funksiyalar nima uchun kerak? Bu savolga javob berish uchun, funksiya uzi nima ekanligini tushunib olish lozim buladi. Dasturlashda, xuddi matematikadagi kabi, unga boglik kupgina argumentlarning uning kupgina ma’nolarida aks etishidir. Demak, funksiya argumentning xar bir ma’nolari jamlanmasi uchun uning bajargan ishi natijasi sifatida kandaydir ma’no kaytaradi. Funksiyalar nima uchun kerak, buni misollar bilan oydinlashtirishga xarakat kilamiz. Dasturlashdagi funksiyaga klassik misol - bu sonning faktorial axamiyatini xisoblab beruvchi funksiya. Demak, biz unga son beramiz, u esa bizga uning faktorialini kaytaradi. Bunda biz faktorialini olishni xoxlagan xar bir son uchun aynan bir xil kodni kaytaravermaymiz - bu songa teng bulgan argumentli funksiyani chakirishning uzi kifoya kiladi.
Natural son faktorialini xisoblash funksiyasi
Misol:
function fact($n){ if ($n==0) return 1;
else return $fact = $n * fact($n-1);
}
echo fact(3);
// echo (3*2) deb yozish mumkin edi; lekin son katta bulsa, echo fact(50);
// funksiyadan foydalanish kulayrok, echo (50*49*48*...*3*2) deb yozgandan; ?>
SHu yul bilan biz biron-bir ma’lumotga boFliklik zaruriyati tuFilgan amalni bajarganimizda, bu xolda xam biz aynan shunday amallarni bajarishimiz oshirishimiz lozim buladi, fakat boshka boshlantich ma’lumotlardan foydalanamiz, funksiyalar mexanizmidan foydalanish- funksiya tanasi kurinishidagi amallar blokini taxt kilish, uzgaruvchan ma’lumotlarni esa - uning parametrlari sifatida foydalanish kulayrok buladi.
Funksiya topshir^i (e’loni) umumiy tarzda kanday bulishini kuramiz. Funksiya kuyidagi sintaksis yordamida aniklanadi:
function Funksiya_nomi (1-parametr, 2-parametr, ... N-parametr) {
Amallar bloki
return "funksiyaga aylanuvchi ma’no";
}
Agar php-dasturda tuFridan-tuFri yozilsa, xech narsani ishlab bulmaydi. Birinchidan, funksiya nomi funksiya parametrlari nomlari (1-parametr, 2-parametr va b.) PHP da nomlanish tsoidalariga muvofits kelishi kerak (unda yaxshisi kirillcha simvollarni \am ishlatmagan ma’tsul). Funksiya nomlari registrga nisbatan sezuvchan buladi. Ikkinchidan, funksiya parametrlari - tilning uzgaruvchan tsismlari, shuning uchun ularning \ar birining nomlari oldidan $ belgisi turishi lozim buladi. Parametrlar ruyxatida \ech tsanday kup nutstalarni tsuyish mumkin emas. Uchinchidan, amallar bloki suzi bilan birga funksiya tanasida istalgan tutri PHP-kod mavjud bulishi kerak (parametrlarga muvofits bulishi majburiy emas). Va ni\oyat, return kalit suzidan sung tartibli php-ifoda kelishi lozim (ma’noga ega bulgan tsandaydir simvollar). Bundan tashtsari, funksiyada tsaytariluvchi ma’no kabi parametrlar bulmasligi \am mumkin. Funksiyani tuFri e’lon tsilishga misol - yutsorida keltirilgan faktorialni \isoblash funksiyasi.
Funksiya chatsirish tsanday amalga oshadi? Funksiya nomi va yumalots tsavslar ichida uning parametrlari ma’nolari ruyxati kursatiladi, agar shundaylari mavjud bulsa: Misol:
Funksiya_nomi ("1-parametr_uchun_ma’no", "2-parametr_uchun_ma’no ",...);
/* Funksiyani chatsirishga misol - funksiyani chatsirish faktorialni \isoblash yutsorida bor, 3 soni faktorialini \isoblash uchun u yerda biz fact(3) deb yozganmiz; u yerda fact - chatsiriluvchi funksiya nomi, a 3 -$n nomli uning parametri ma’nosi */
?>
Funksiyani tsachon chatsirish mumkin? Bu Falati savol bulib tuyulishi mumkin. Funksiyani uni anitslangandan keyin chatsirish mumkin, ya’ni function f_name(){...} blokidan pastda istalgan dastur tsatorida. PHP3 da bu aynan shunday. Lekin PHP4 da bunday talab yuts. X,amma gap interpretator olingan kodni tsanday tsayta ishlashida. Birgina istisno shartli ravishda anitslanadigan funksiyadan tashkil topadi (shartli operatorlar yoki boshtsa funksiyalar ichida). Funksiya shu tarzda anitslangan tatsdirda, uni anitslash uni chatsirishdan oldin bajariladi.
Misol. SHartli funksiya ichida funksiyani anitslash
$make = true;
/* bu yerda Make_event() ni chatsirish mumkin emas; CHunki u \ali mavjud emas, lekin Save_info() ni chatsirish mumkin */
Save_mfo("Sobir","Soditsov", "Men PHP kursini tanladim");
if ($make){
// Make_event() funksiyasini anitslash
function Make_event(){
echo "
Python
ni urganmotschiman";
} }
// endi Make_event() ni chatsirish mumkin Make_event();
// Save_info funksiyasini anitslanadi
function Save_info($first, $last, $message){
echo "
$message
";
echo "Ism: ". $first . " ". $last . "
";
}
Save_mfo("Murod","Yotsubov", "Men Lisp ni tanladim");
// Save_info ni bu yerda \am chatsirish mumkin ?>
Agar funksiya dastur ichida anitslangan bulsa, uni keyin tsayta anitslash yoki uchirib tashlash mumkin emas. Funksiya nomlariga registr ta’sir tsilmasligiga tsaramasdan, yaxshisi funksiyani anitslash paytida berilgan nom bilan chatsirish mumkin buladi.
Misol. Funksiya ichidagi funksiyani anitslash
/* ma’lumotlarni satslash, ya’ni DataSave() funksiyasini chatsirish mumkin emas. Uning tuFriligi tekshirilmasdan oldin, ya’ni DataCheck() funksiyasi chatsirilmasdan oldin bu mumkin emas.*/ DataCheck();
DataSave();
function DataCheck(){
// ma’lumotlar tugriligini tekshirish
function DataSave(){
// ma’lumotlarni satslaymiz
} } ?>
Funksiya argumentlari, ularning ma’nolari va ishlatilishini batafsil kurib chitsamiz.
Funksiyalarning argumentlari
Xar bir funksiyada, avval aytganimizday, argumentlar ruyxati bulishi mumkin. Bu argumentlar yordamida funksiyaga xar xil ma’lumotlar beriladi (masalan, faktoriali xisoblanishi kerak bulganson ma’nosi). Xar bir argument uzgaruvchi va konstantaga ega buladi.
Argumentlar yordamida ma’lumotlar funksiyaga uch xil turli usullar bilan utkazilishi mumkin. Bu argumentlarni ma’nosiga kura (uzgarmas xolatda foydalaniladi), ilovalarga kura va uzgarmas xolatda argumentlarga ma’no berishga kura utkazish . Bu usullarni atroflicha kurib chitsamiz.
Argument funksiyaga ma’nosiga kura utkazilsa, funksiya ichidagi argument ma’nosining uzgarishi uning funksiya tashtsarisidagi ma’nosiga ta’sir tsilmaydi. Funksiyaga uning argumentlarini uzgartirishga yul tsuyish uchun ularni xavolalarga kura utkazish kerak. Buning uchun argument nomi oldidan funksiyani anitslashda ampensand “&” belgisini yozish kerak.
Misol. Argumentlarni xavolasiga kura utkazish
// tsushimcha tsilishi mumkin bulgan funksiyani yozamiz checked suzi tsatoriga
function add_label(&$data_str){
$data_str .= "checked";
}
$str = "// bunday tsator mavjud bulsin
echo $str .">
";
// forma elementini keltiradi - belgilanmagan radio knopkasini add_label($str);
// funksiyani chatsiramiz
echo $str .">
";
// bu endi belgilangan radio knopkani keltiradi ?>
Funksiyada tinch xolatda foydalanilayotgan argumentlar ma’nosini anitslash mumkin. Ayni paytdagi ma’noning uzi konstant ifoda bulishi, uzgartirish va sinf vakili yoki boshtsa funksiya chatsiruvi bulmasligi lozim.
Bizda informatsion xabar tuzuvchi funksiya, unga berilgan parametr ma’nosiga muvofits tarzda uzgaruvchi imzo bor. Agar parametr ma’nosi berilmagan bulsa, “Tashkiliy tsumita” imzosidan foydalaniladi.
Misol. Tinch xolatdagi argument ma’nosi
function Message($sign="Tash.k;umita."){
// bu yerda parametr sign ayni paytda “Tash.kumita” ma’nosiga ega
echo "Keyingi iitilish ertaga bulib utadi.<Ьg>";
echo "$sign
";
}
Message();
// Parametrsiz funksiyani chatsiramiz. Bu xolda imzo - Bu Tashkiliy kumita Message("Xurmat bilan Kamoliddin");
// Bu xolda imzo "Xurmat bilan Kamoliddin." buladi ?>
Bu skript ishining natijasi kuyidagicha:

Download 55,87 Kb.

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




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
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