php:我可以在类方法中创建和调用函数吗?

2022-08-31 00:57:43

是否可以在类方法中创建函数,我该如何调用它?

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;
       }
    }
}

提前感谢您


答案 1

是的。从 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;
        }
     }
}

答案 2

这是可以做到的,但是由于函数是在全局范围内定义的,因此如果调用该方法两次,这将导致错误,因为PHP引擎将在第二次调用期间考虑要重新定义的函数。


推荐