PHP方法如何通过魔术方法调用自身?

时间:2015-08-08 16:45:01

标签: php

我有这个:

function callMe()
{
    // return $this->callMe();
    return $this->__FUNCTION__();
}

这个不起作用:

Fatal error: Call to undefined method Classss::__FUNCTION__()

但是,如果我不想复制该方法的名称会怎样?

3 个答案:

答案 0 :(得分:1)

以下作品,但我建议不要这样做。

class Test {
    public function f() {
        echo "called";
        $fn_name = __FUNCTION__;
        $this->$fn_name();
        // Equally valid:
        // $this->{__FUNCTION__}();
    }
}

答案 1 :(得分:1)

以这种方式尝试:

function callMe(  ){
   return call_user_func(
      array( $this, __METHOD__ )
      //(optional) , $argument1, $argument2, ....
   );
}

答案 2 :(得分:1)

this这样的apporach也可以。

<?php

callMe(0);

function callMe($count)
{
    $count++;
    echo $count . " ";
    if($count > 10){
        return;
    }
    call_user_func(__FUNCTION__, $count);
}
?>