⊗ppSpFnCb 11 of 83 menu

Функсияҳои callback дар PHP

Callback функсияе номида мешавад, ки ба унвони параметр ба функсияи дигар дода мешавад.

Биёед ба мисол нигарем. Фарз кунем, ки мо функсияе дорем, ки ба унвони параметри аввал адад ва ба унвони параметри дуюм - callback қабул мекунад:

<?php function func($num, $calb) { } ?>

Биёед тавре созем, ки дар дохили функсия callback-и мо барои адади додашуда фарохонда шавад:

<?php function func($num, $calb) { echo $calb($num); } ?>

Ҳоло биёед бубинем, ки чӣ гуна вариантҳои додани callback ба функсияи мо мавҷуданд.

Варианти 1

Callback-и мо метавонад функсияи оддӣ бошад:

<?php function calb($num) { return $num ** 2; } ?>

Дар ин ҳолат ба унвони callback мо номи функсияи худро медиҳем:

<?php func(3, 'calb'); ?>

Дар дохили функсияи func callback-и мо бо ном фарохонда мешавад.

Варианти 2

Callback-и мо метавонад функсияи гумном бошад, ки дар тағирёбанда сабт шудааст:

<?php $calb = function($num) { return $num ** 2; }; ?>

Дар ин ҳолат мо параметрро тағирёбандаеро, ки функсияи моро дорад, медиҳем:

<?php func(3, $calb); ?>

Варианти 3

Метавон функсияи гумномро ҳамзамон параметр дод:

<?php func(3, function($num) { return $num ** 2; }); ?>

Варианти 4

Метавон рамзро бо истифода аз функсияи тирӣ кӯтоҳ кард:

<?php func(3, fn($num) => $num ** 2); ?>

Масъалаҳои амалӣ

Функсияе дода шудааст, ки параметраш массив ва callback-ро қабул мекунад, ки ба ҳар як элементи массив татбиқ карда мешавад:

<?php function func($arr, $calb) { $res = []; foreach ($arr as $elem) { $res[] = $calb($elem); } return $res; } ?>

Ин функсиеро фарохонед, ба унвони параметр массиве бо ададҳо ва callback-еро дода, ки адади додашударо ба квадрат мебарад.

Тоҷикӣ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан