Вызов каждой анонимной функции из массива функций с использованием цикла for PHP - PullRequest
0 голосов
/ 02 марта 2019

Я хочу перебрать массив анонимных функций в php и вызвать каждую из них следующим образом:

        for ($i = 0; $i < count($headingArray); $i++) {
            echo $headingArray[$i];
            $callBackFunction = $functionArray[$i]($file);
            echo $callBackFunction;
            echo $divider;
        }

Идея состоит в том, что он будет отображать заголовок, а затем соответствующие данные, возвращаемые каждымфункция под.

Я получаю фатальную ошибку: неперехваченная ошибка: имя функции должно быть строкой.

Есть ли способ использовать индекс цикла $ i для вызова каждого или вы можете только явно передать имя функции при доступе к ней из массива?

1 Ответ

0 голосов
/ 02 марта 2019
<?php

$a = function($n) {
    return 'a';
};
$b = function($n) {
    return 'b';
};

$functions = [$a, $b];
foreach($functions as $func) {
    echo $func('foo'), "\n";
}

Вывод:

a
b

Пример заголовков (где анонимные функции и заголовки имеют общие ключи:

<?php
$functions =
[
    function($n) {
        return 'a';
    },
    function($n) {
        return 'b';
    }
];
$headings =
[
    'a heading',
    'b heading'
];
foreach($functions as $k => $func) {
    echo $headings[$k], "\n", $func('foo'), "\n";
}

Вывод:

a heading
a
b heading
b
...