$ a-> b = new cl();如何从$ a-> b-> c()中调用$ a-> x(),而不必将$ a作为参数传递给c();

时间:2015-07-13 22:20:16

标签: php methods call siblings

PHP

class ClA {

    var $b;

    function clA()
    {
        $this->b = new ClB();
    }

    function x()
    {
      echo "testing";
    }
}        


class ClB {

    function clB()
    {

    }

    function c ($a)
    {
       $a->x();
    }
}

$a = new ClA();

$a->b->c($a);

如何调用c()而不必传递$ a;

调用作为成员的方法 一个级别的对象 到当前的对象 正在调用其方法。

function c ()
{
   ??->x();
}

?? =>对象此方法为成员的当前对象的一级级别

1 个答案:

答案 0 :(得分:4)

class ClA {

    public $b;

    public function __construct() {
        $this->b = new ClB($this);
    }

    public function x() {
      echo "testing";
    }
}        


class ClB {

    private $a;

    public function __construct($a) {
        $this->a = $a;
    }

    public function c () {
       $this->a->x();
    }
}

$a = new ClA();

$a->b->c();

Demo

请注意,我已将您的课程从PHP4更新为PHP5