Junior
PHP'da o'q va nomli funksiyalar nima?
sobes.tech AI
AIdan javob
Oklar funksiyalar, PHP 7.4 da taqdim etilgan nomli funksiyalar uchun sintaktik shakar hisoblanadi. Ular oddiy lambda funksiyalarini yozish uchun qisqaroq usulni taqdim etadi.
-
Nomli funksiyalar (yopiq):
- Bir nechta kod satrini o'z ichiga olishi mumkin va murakkab mantiqni o'z ichiga olishi mumkin.
- O'zgaruvchilarni ota-joydan import qilish uchun
usekalit so'zidan foydalanadi. - Ko'proq moslashuvchan va murakkab vazifalar uchun mos keladi.
-
Ok funksiyalari:
- Faqat bitta ifoda ichida bo'ladi va natijasi noaniq tarzda qaytariladi.
- Otadan bo'sh joydagi o'zgaruvchilarga avtomatik kirish huquqiga ega (
usetalab qilinmaydi). - Oddiy, bitta satrli operatsiyalar uchun mo'ljallangan.
Mana misollar:
<?php
// Nomli funksiya
$greet = function ($name) {
return "Salom, " . $name;
};
echo $greet('Dunyo') . "\n";
// `use` bilan nomli funksiya
$message = 'Salomlashish';
$greetWithMsg = function ($name) use ($message) {
return $message . ", " . $name;
};
echo $greetWithMsg('Do‘st') . "\n";
<?php
// Ok funksiyasi
$greetArrow = fn ($name) => "Salom, " . $name;
echo $greetArrow('Dunyo') . "\n";
// Otadan avtomatik kirish bilan ok funksiyasi
$messageArrow = 'Salomlashish';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Do‘st') . "\n";
Cheklovlardagi farqlar:
| Imkoniyat | Nomli funksiya | Ok funksiyasi |
|---|---|---|
| Ko‘p satrli kod | Ha | Yo‘q |
return kalit so‘zi |
Ha (majburiy) | Yo‘q (noaniq) |
use kalit so‘zi |
Ha (import uchun) | Yo‘q (avtomatik) |
| Murakkab mantiq | Ha | Yo‘q |
Ularni tanlash vazifaning murakkabligi va sintaksis afzalliklariga bog‘liq. Oddiy amallar uchun, ularning qisqaliklari sababli, ok funksiyalaridan foydalanish qulayroq.