Sobes.tech
Junior

Функсияҳои ишоракунӣ ва номӣ дар PHP чист?

sobes.tech AI

Ҷавоб аз AI

Функсияҳои ишоракунӣ сахтӣ синтаксисӣ барои функсияҳои номаълум мебошанд, ки дар PHP 7.4 ворид шудаанд. Онҳо роҳи кӯтоҳтар барои навиштани функсияҳои ламбдаи оддӣ пешниҳод мекунанд.

  • Функсияҳои номаълум (пӯшидаҳо):

    • Мебошанд бештар аз як сатр коди ва дорои мантиқи мураккаб.
    • Барои ворид кардани тағйирёбандаҳо аз минтақаи болоӣ калиди use истифода мебаранд.
    • Беҳтар ва барои вазифаҳои мураккаб мувофиқанд.
  • Функсияҳои ишоракунӣ:

    • Танҳо як ибора доранд, ки натиҷаи он ба таври ғайрирасмӣ баргардонида мешавад.
    • Ба тағйирёбандаҳои минтақаи болоӣ автоматӣ дастрасӣ доранд (use талаб намекунад).
    • Барои амалиёти оддӣ ва як сатрӣ пешбинӣ шудаанд.

Масаланҳо:

<?php
// Функсияи номаълум
$greet = function ($name) {
    return "Салом, " . $name;
};
echo $greet('Дунё') . "\n";

// Функсияи номаълум бо `use`
паём = 'Салом';
$greetWithMsg = function ($name) use ($паём) {
    return $паём . ", " . $name;
};
echo $greetWithMsg('Дӯст') . "\n";
<?php
// Функсияи ишоракунӣ
$greetArrow = fn ($name) => "Салом, " . $name;
echo $greetArrow('Дунё') . "\n";

// Функсияи ишоракунӣ бо дастрасии автоматӣ ба минтақаи болоӣ
паём = 'Салом';
$greetArrowWithMsg = fn ($name) => $паём . ", " . $name;
echo $greetArrowWithMsg('Дӯст') . "\n";

Фарқиятҳо дар маҳдудиятҳо:

Имконият Функсияи номаълум Функсияи ишоракунӣ
Коди бисёрхатӣ Бале Не
Калиди return Бале (зарурӣ) Не (ғайрирасмӣ)
Калиди use Бале (барои воридот) Не (автоматӣ)
Мантиқи мураккаб Бале Не

Интихоб байни онҳо вобаста ба мураккабии вазифа ва афзалиятҳои синтаксис мебошад. Барои амалҳои оддӣ, истифодаи функсияҳои ишоракунӣ қулайтар аст бо сабаби кӯтоҳии онҳо.