如何在同一个 class 中调用另一个方法中的方法?

How can I call a method in another method in the same class?

我想知道是否可以从同一个方法中的另一个方法调用一个方法class?

例如这段代码,非常简单有一个方法method_foo()调用方法a():

<?php

    class foo {

        function a() {
            return 3;
        }

        function method_foo() {
            echo a();
        }
    }

    $obj = new foo();
    $obj->method_foo();

?>

但是当我调用 method_foo() 时,我收到了这个错误:

( ! ) Fatal error: Call to undefined function a() in /home/guest/public_html/... on line ... Call Stack
# Time Memory Function Location 1 0.0015 312032 {main}( ) ../index.html:0 2 0.0156 523056 foo->method_foo( ) ../index.html:1667

为什么会出现此错误?我可以让这个例子工作吗?

您需要使用 $this 来访问此方法。

class foo {

    function a()
    {
        return 3;
    }

    function __construct()
    {

    }

    function method_foo()
    {
        echo $this->a();
    }
}

$obj = new foo();
$obj->method_foo();

你应该像这样在函数 method_foo() 中调用方法 a() :

echo $this->a(); //this will output 3

您可以在以下位置阅读更多相关信息:http://php.net/manual/en/ref.classobj.php

您可以使用 $this 调用相同的 class methods/variables

 function method_foo()
 {
    echo $this->a();
 }