cwd*_*cwd 3 php anonymous function
在php 5.3中,当您创建匿名函数时,是否可以设置默认值?
就像在普通的功能中一样
function tim($ a = 123){
}
其中123是$ a的默认值.什么与匿名函数相邻?
UPDATE
我在这种情况下遇到麻烦:
//$data is an object;
$data->title = 'test';
add_filter('title',function($current, $new = $data->title ){ return $new; });
Run Code Online (Sandbox Code Playgroud)
产生"意外的T_VARIABLE"
没有$data->title一点工作正常,但我真的想通过这个......
add_filter('title',function($current, $new = 'some-title' ){ return $new; });
Run Code Online (Sandbox Code Playgroud)
我在Wordpress中添加了一个过滤器.如果我明确设置它,工作正常,但我想从另一个变量拉它.那可能吗?
$ php -r '$foo = function($a = 123){echo $a, PHP_EOL;};$foo(1);$foo();'
1
123
Run Code Online (Sandbox Code Playgroud)
所以这是肯定的
您只能将简单值分配给参数默认值.从手册
默认值必须是常量表达式,而不是(例如)变量,类成员或函数调用.
尝试通过use关键字传递外部变量
add_filter('title', function($current, $new = null) use ($data) {
if (null === $new) {
$new = $data->title;
}
return $new;
});
Run Code Online (Sandbox Code Playgroud)