PHP OOP: Co je Callbacks / Callables? [7]

PHP OOP: Co je Callbacks / Callables? [7]

Callback je funkce, která je dosazena jako parametr do jiné funkce. K použití callback funkce v parametru dané funkce stačí jen uvést název požadované (callback) funkce.

 

Příklady použití callback / callable

 /**
  * 0
  * typical use with array_map (anonymous/arrow function)
 */
$array = [1, 2, 3];
// 0a. - anonymous function
$resultAnonymous = array_map(function ($item) {
    return '(0a) item: ' . $item + 1;
}, $array);
print_r($resultAnonymous);

// 0b. - arrow function
$resultArrow = array_map(
    fn ($item) => '(0b) item: ' . $item + 1,
    $array
);
print_r($resultArrow);

// 0c. - anonymous function afCallback()
function afCallback($item) {
    return '(0c) item: ' . $item + 1;
}
$resultAfc = array_map('afCallback', $array);
print_r($resultAfc);

/**
 * 1
*/
function addTextWithCallback(string $string) {
  return $string . " + text from callable\n";
}
function printMessage(string $string, callable $callable) {
  echo $callable($string);
}
printMessage("(1) Hello world", "addTextWithCallback");


/**
 * 2
*/
function fun(){
   echo "(2) Hello World\n";
}
echo '(2) is_callable? ' . is_callable("fun") . "\n";
call_user_func("fun");


/**
 * 3
*/
call_user_func(function(){
  echo "(3) Hello World\n";
});


/**
 * 4
*/
function callableFun()
{
   echo '(4) Hello World';
}
function runCallable(callable $cf)
{
   $cf();
}
runCallable('callableFun');

Tento kód vrátí výsledek:

 Array
(
    [0] => (0a) item: 2
    [1] => (0a) item: 3
    [2] => (0a) item: 4
)
Array
(
    [0] => (0b) item: 2
    [1] => (0b) item: 3
    [2] => (0b) item: 4
)
Array
(
    [0] => (0c) item: 2
    [1] => (0c) item: 3
    [2] => (0c) item: 4
)
(1) Hello world + text from callable
(2) is_callable? 1
(3) Hello World
(4) Hello World

 

Odkazy

Soubory na Github.com

Jak se ti článek líbil?

Komentáře (0)

Přidat komentář