有没有办法将现有函数绑定到php中的匿名函数?像
这样的东西$my_func = strip_tags();
或者我必须将它重新定义为一种匿名包装器,并使用正确的参数和返回值吗?
我尝试使用谷歌搜索,但我想我没有正确地使用正确的搜索短语,因为我没有在第一页找到结果。
编辑我正在创建一种函数管道(?),我可以在其中传递数据和函数,我想将函数作为变量传递。我想保持语法相同,并且能够使用$output = $function($data)
而无需为本机函数编写一堆匿名包装。另外,我想避免使用call_user_func
,因此我不必重新编写现有代码。
答案 0 :(得分:3)
您可以使用它的名称绑定该函数。看看php的callable界面
上述手册中的代码
<?php
// An example callback function
function my_callback_function() {
echo 'hello world!';
}
// An example callback method
class MyClass {
static function myCallbackMethod() {
echo 'Hello World!';
}
}
// Type 1: Simple callback
call_user_func('my_callback_function');
// Type 2: Static class method call
call_user_func(array('MyClass', 'myCallbackMethod'));
// Type 3: Object method call
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
// Type 4: Static class method call (As of PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');
// Type 5: Relative static class method call (As of PHP 5.3.0)
class A {
public static function who() {
echo "A\n";
}
}
class B extends A {
public static function who() {
echo "B\n";
}
}
call_user_func(array('B', 'parent::who')); // A
?>
答案 1 :(得分:3)
简单。
$my_func = 'strip_tags';
$output = $my_func($data);