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

时间:2015-04-23 11:01:08

标签: php class methods

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

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

<?php

    class foo {

        function a() {
            return 3;
        }

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

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

?>

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

  

(!)致命错误:调用未定义的函数a()   / home / guest / public_html / ... on line ... Call Stack
  #时间记忆功能位置1 0.0015 312032 {main}()../ index.html:0 2 0.0156 523056 foo-&gt; method_foo(    )../ index.html:1667

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

3 个答案:

答案 0 :(得分:1)

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

class foo {

    function a()
    {
        return 3;
    }

    function __construct()
    {

    }

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

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

答案 1 :(得分:1)

你应该在函数method_foo()中调用方法a(),如下所示:

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

您可以在http://php.net/manual/en/ref.classobj.php了解详情。

答案 2 :(得分:1)

您可以使用$this来调用相同的类方法/变量

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