⊗ppSpFnCb 11 of 83 menu

Hàm callback trong PHP

Callback là một hàm được truyền vào như một tham số cho một hàm khác.

Hãy xem một ví dụ. Giả sử chúng ta có một hàm chấp nhận một số làm tham số đầu tiên, và một callback làm tham số thứ hai:

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

Hãy làm sao để bên trong hàm callback của chúng ta được gọi với số đã truyền:

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

Bây giờ hãy xem có những phương án nào để truyền callback vào hàm của chúng ta.

Phương án 1

Callback của chúng ta có thể là một hàm thông thường:

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

Trong trường hợp này, với tư cách là callback chúng ta sẽ truyền tên của hàm mình:

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

Bên trong hàm func callback của chúng ta sẽ được gọi theo tên.

Phương án 2

Callback của chúng ta có thể là một hàm ẩn danh, được lưu vào một biến:

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

Trong trường hợp này, chúng ta truyền vào tham số là biến chứa hàm của chúng ta:

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

Phương án 3

Có thể truyền hàm ẩn danh trực tiếp làm tham số:

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

Phương án 4

Có thể rút ngắn mã bằng cách sử dụng hàm mũi tên:

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

Bài tập thực hành

Cho một hàm, chấp nhận một mảng làm tham số và một callback, sẽ được áp dụng cho từng phần tử của mảng:

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

Gọi hàm này, truyền vào tham số là mảng chứa các số và callback bình phương số đã truyền.

Tiếng Việt
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ʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối