找不到cakephp数组\过滤器回调函数
我有一个cakephp应用程序,在我的一个控制器中,我有一个函数找不到cakephp数组\过滤器回调函数,php,cakephp,cakephp-1.3,Php,Cakephp,Cakephp 1.3,我有一个cakephp应用程序,在我的一个控制器中,我有一个函数\u filter\u callback,用作对php函数的回调,如下所示: class TestClassController extends AppController { var $name = 'TestClass'; .... function test_fn() { ... array_filter($my_array, '_filter_c
\u filter\u callback
,用作对php函数的回调,如下所示:
class TestClassController extends AppController
{
var $name = 'TestClass';
....
function test_fn()
{
...
array_filter($my_array, '_filter_callback');
}
function _filter_callback($val)
{
// callback logic here...
}
}
我的问题是,我的控制器中的array\u filter
找不到我的函数\u filter\u callback
,因为我遇到以下错误:
Warning: array_filter() expects parameter 2 to be a valid callback,
function '_filter_callback' not found or invalid function name
有人知道我如何在cakephp应用程序中使
array\u filter
知道我的回调函数吗?该函数是否在全局范围内?如果不是,那就是。
如果函数体很简单(在大多数情况下),请尝试使用PHP>5.3的匿名函数-
或者使用create_函数
然后可以将其作为参数注入,而无需声明一个use全局函数
过滤小于10的所有元素的示例:
array_filter($array, create_function('$a', 'return $a > 10;'));
编辑:
我现在可以看到您正在尝试调用对象的方法。必须指定实例。试试这个:
array_filter($my_array, array($this, '_filter_callback'));
该功能是否在全局范围内?如果不是,那就是。 如果函数体很简单(在大多数情况下),请尝试使用PHP>5.3的匿名函数- 或者使用create_函数 然后可以将其作为参数注入,而无需声明一个use全局函数 过滤小于10的所有元素的示例:
array_filter($array, create_function('$a', 'return $a > 10;'));
编辑:
我现在可以看到您正在尝试调用对象的方法。必须指定实例。试试这个:
array_filter($my_array, array($this, '_filter_callback'));
有效的PHP回调定义是:
'functionName'
array($object,'method')
'StaticClass::methodName'
array('StaticClass','methodName')
function(){/*do stuff*/}
$lambda
is\u callable()
可用于检查是否可以调用参数
请注意,使用回调取决于可见性。通常不能使用私有或受保护的方法作为PHP函数的参数。它们从全局角度进行操作,无法从外部访问这些方法。有效的PHP回调定义是:
'functionName'
array($object,'method')
'StaticClass::methodName'
array('StaticClass','methodName')
function(){/*do stuff*/}
$lambda
is\u callable()
可用于检查是否可以调用参数
请注意,使用回调取决于可见性。通常不能使用私有或受保护的方法作为PHP函数的参数。它们从全局角度进行操作,无法从外部访问这些方法。您能给我们一个代码示例吗?它是否在同一范围内?是的,所有内容都在同一类中(查看编辑)。不在同一类中。在同一个范围内。你能给我们一个你的代码的例子吗?它在同一个范围内吗?是的,所有东西都在同一个类中(查看编辑)。不在同一个类中。在相同的scope.Wow中,
array\u filter($my\u array,array($this,'u filter\u callback')代码>工作!!,非常感谢你。我不知道语法数组($this'a_function'
);。你能给我一个链接或者一些解释语法的东西吗?参见示例#4Wow,array_filter($my_array,array($this,'u filter_callback')代码>工作!!,非常感谢你。我不知道语法数组($this'a_function'
);。你能给我一个链接或者一些解释语法的东西吗?见示例4