使用for循环PHP从函数数组中调用每个匿名函数

时间:2019-03-02 13:02:36

标签: php arrays anonymous-function

我想遍历php中的一系列匿名函数并像这样调用每个匿名函数:

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

这个想法是,它将显示标题,然后显示从下面每个函数返回的适当数据。

我遇到致命错误:未捕获的错误:函数名称必须是字符串。

是否可以使用for循环索引$ i来调用每个函数,或者只能从数组访问函数时显式传递函数名?

1 个答案:

答案 0 :(得分:-1)

<?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