所以我正在尝试做这样的事情:
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"]);