【发布时间】:2019-06-05 09:40:27
【问题描述】:
所以我正在尝试做这样的事情:
function func() {
$call = function() {
...
};
$call();
}
但它抛出一个错误说:
函数名必须是字符串
我也试过这样调用函数:
$this->call();
call(); // and like this
而且效果也不太好。
我不能做我正在做的事情有什么原因吗?
编辑
好像是原代码有问题,我写的例子中没有
这是我的真实代码:
$data = [...];
$menu_array = [];
$getChildren = function($id) {
$children = [];
foreach ($data as $node) {
if ($id == $node["parent"]) {
array_push($children, $node);
}
}
return empty($children) ? null : $children;
};
$check = function($arr, $dat) {
foreach ($dat as $node) {
$children = $getChildren($node["id"]);
if ($children == null) {
$arr[$node["display_name"]] = $node["model"];
} else {
$arr[$node["display_name"]][] = $children;
$check($children);
}
}
};
$check($menu_array, $data);
在这一行抛出了错误:
$children = $getChildren($node["id"]);
【问题讨论】:
-
看错的行号。
-
¯\_(ツ)_/¯ 在我的电脑上works (php 7.2.4)
-
@revo 行号是 $call() 所在的位置。
-
你能分享你正在运行的确切代码和确切的错误消息吗?
标签: php function php-7 php-7.0