Sobes.tech
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 use kalit 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 (use talab 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.