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 |
Бале (барои воридот) | Не (автоматӣ) |
| Мантиқи мураккаб | Бале | Не |
Интихоб байни онҳо вобаста ба мураккабии вазифа ва афзалиятҳои синтаксис мебошад. Барои амалҳои оддӣ, истифодаи функсияҳои ишоракунӣ қулайтар аст бо сабаби кӯтоҳии онҳо.