可以通过将函数名称传递给字符串PHP pass function as param then call the function?
来完成那很粗糙。
没有类型检查
如果我重构函数名,那么包含变量的字符串也需要手动修复。如果我们有拼写错误,则不会在编译时检查。
它不像在vb.net中我们有addressOf运算符。
这真的是PhP执行此操作的唯一方法吗?
我的意思是lamda功能似乎更健全。至少我们传递的变量实际上是一个函数而不是一个字符串。
我错了吗?
这样做的正确方法是使用lambda吗?
或者还有其他方法吗?
我可以使用像这样的闭包
function getSelectedElements($textFile)
{
$standardfuncline2= function (&$arout,$line)
{
standardfuncline1 ($arout,$line);
};
$result = getSelectedElementsCustomFunc ($textFile,$standardfuncline2);
return $result;
}
而不是
$result = getSelectedElementsCustomFunc ($textFile,"standardfuncline1");
这似乎更适用于所有类型检查和填充。但是,有点太长了不是吗?