m1k*_*3y3 10 php class function
是否可以在类方法中创建函数,如何调用它?
即
class Foo
{
function bar($attr)
{
if($attr == 1)
{
return "call function do_something_with_attr($attr)";
}
else
{
return $attr;
}
function do_something_with_attr($atr)
{
do something
...
...
return $output;
}
}
}
先感谢您
是.从PHP 5.3开始,您可以使用匿名函数:
class Foo
{
function bar($attr)
{
$do_something_with_attr = function($atr)
{
//do something
//...
//...
$output = $atr * 2;
return $output;
};
if ($attr == 1)
{
return $do_something_with_attr($attr);
}
else
{
return $attr;
}
}
}
Run Code Online (Sandbox Code Playgroud)
它可以完成,但由于函数是在全局范围内定义的,如果方法被调用两次将导致错误,因为PHP引擎将考虑在第二次调用期间重新定义函数.