Alternativ sintaksislar.
PHP dasturlash tili o’zining bir nechta if, while, for, foreach hamda switch boshqariladigan strukturalari uchun alьternativ sintaksisni taqdim etadi. Har bir holatda ochiladigan qavs ikki nuqtaga (:), yopiladigani esa mos ravishda endif;, endwhile; va hokazolarga o’zgartiriladi.
Masalan, if shart operatori sintaksisini quyidagicha tfodalash mumkin:
if (ifoda) : bajariladigan_blok endif;
Ma’nosi o’zgarmasdan qoladi: agar if shart operatori dumaloq qavsi ichidagi shart rost bo’lsa, ikki nuqtadan «:» to endif; buyrug’igacha barcha kod bajariladi. Bunday sintaksisdan foydalanish html-kod ichida qurilgan php-kod uchun qulaydir.
$names = array("Karim","Salim","Sodiq");
if ($names[0]=="Karim"):
?>
Salom, Karim!
misol. Alьternativ sintaksisdan foydalanish.
Agarda else hamda elseif konstruktsiyalaridan foydalanilsa, u holda ham alьternativ sintaksisdan foydalansa bo’ladi:
if ($a == 5):
print "a o’zgaruvchi 5 ga teng";
print "...";
elseif ($a == 6):
print "a o’zgaruvchi 6 ga teng ";
print "!!!";
else:
print "a o’zgaruvchi na 5 ga va na 6 ga teng ";
endif;
?>
switch operatori.
Yana bir shartni tekshirib turli amallarga bog’liq ravishda ish ko’rsatadigan konstruktsiya bu – switch operatoridir. Bu operatorni uzbek tiliga tarjima qilinganda “yo’nalishni o’zgartirgich” ma’nosini beradi hamda bu operatorning vazifasi ham shunga o’xshashdir. O’zgaruvchini qanday qiymatni qabul qilishiga bog’liq ravishda u yo’nalishni o’zgartirib turli bloklardagi amallarni bajaradi. switch operatori if...elseif...else yoki if operatori majmuiga juda o’xshash bo’ladi. switch operatorining strukturasini quyidagicha ifodalash mumkin:
switch (ifoda yoki o’zgaruvchi){
case qiymat1:
amallar_bloki1
break;
case qiymat2:
amallar_bloki2
break;
...
default:
amallar_bloki_avtomatik_tarzda
}
if operatoridan farqli tomoni bu erda ifodalar mantiqiy tip qabul qilmay, balki faqat case kalit so’zidan keyingi qiymatlarni (qiymat1, qiymat2 va h.k.) taqqoslaydi xolos. Agar ifoda qiymati qandaydir variant bilan ustma-ust tushsa, ikki nuqtadan keyingi break operatorigacha bo’lgan amallar_blokidagi amallarni bajaradi. Agarda ifoda qiymati berilgan variantlardan hech biriga ustma-ust tushmasa, default kalit so’zidan keyingi avtomatik tarzda bajariladigan blok (amallar_bloki_avtomatik_tarzda) bajariladi. switch operatoridagi ifoda faqat bir marta hisoblanadi, elseif operatorida esa har bir tekshirishda hisoblanadi, shuning uchun agarda ifoda etarli darajada murakkab bo’lsa, u holda switch operatori tezroq ishlaydi.
misolni switch operatoridan foydalangan holda quyidagicha yozish mumkin:
$names = array("Karim","Salim","Sodiq");
switch ($names[0]){
case "Karim":
echo "Salom, Karim!";
break;
case "Salim":
echo "Salom, Salim!";
break;
case "Sodiq":
echo "Salom, Sodiq!";
break;
default:
echo "Salom, $names[0].
Seni isming nima?";
}
?>
Agarda berilgan misolda break operatorini tashlab ketsak, masalan, case "Salim": holi uchun, u holda agarda o’zgaruvchi satr qiymati "Salim" bo’lsa ekranga "Salom, Salim!" ma’lumotini chiqaradi va ishini davom ettirib "Salom, Sodiq!" ma’lumotni chiqaradi va switch operatorining oxiriga kelib dastur break operatorini bajaradi.
switch operatorining konstrkutsiyasi uchun xuddi if operatori kabi alьternativ sintaksisi mavjud. Bu erda switch operatoridagi ochiladigan figurali qavs ikki nuqtaga o’zgartiriladi, yopiladigani esa mos ravishda endswitch; kalit so’ziga o’zgartiriladi.
Do'stlaringiz bilan baham: |