قابل فراخوانی (callable)
نوع «قابل فراخوانی (Callable)» یعنی آرگومان باید مثل یک تابع عمل کند. یعنی بشود آن را صدا زد. مثل وقتی در بازی، دکمه عمل را عوض می کنی.
تعریف و کاربرد callable
callable نوعی راهنما برای توابع است. این راهنما می گوید آرگومان باید تابع باشد. این تابع می تواند ناشناس، نام یک تابع، متد استاتیک کلاس، یا متد شیء باشد.
مثال: آرگومان تابع از نوع callable
<?php
function printFormatted(callable $format, $str) {
echo $format($str);
echo "<br>";
}
function exclaim($str) {
return $str . "!";
}
printFormatted("exclaim", "Hello World");
?>
انواع مختلف callable با مثال
<?php
function printFormatted(callable $format, $str) {
echo $format($str);
echo "<br>";
}
class MyClass {
public static function ask($str) {
return $str . "?";
}
public function brackets($str) {
return "[" . $str . "]";
}
}
$func = function ($str) {
return substr($str, 0, 5);
};
printFormatted($func, "Hello World");
printFormatted("strtoupper", "Hello World");
printFormatted(["MyClass", "ask"], "Hello World");
$obj = new MyClass();
printFormatted([$obj, "brackets"], "Hello World");
?>
گام های عملی
- تابع میزبان را با نوع
callableتعریف کن. - یکی از انواع قابل فراخوانی را بساز.
- آن را به تابع میزبان بده و اجرا کن.
نکته: برای پیمایش آرایه، foreach با as خیلی کاربردی است.
نکته: می توانی با trait و use متدها را مستعار کنی و بعد به صورت callable استفاده کنی.
جمع بندی سریع
callableیعنی آرگومان، تابع پذیر باشد.- می تواند ناشناس، رشته، یا آرایه متد باشد.
- کد تمیزتر و امن تر می شود.
- برای قالب بندی یا فیلترها عالی است.