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

Související obsah

serial-php-oop

php

programovani

vyvoj

php-oop

Komentáře

Vaše reakce na PHP OOP: Co je Callbacks / Callables? [7]

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.