从父函数的父类调用函数

时间:2012-10-10 01:55:42

标签: php class

让我们说,为简单起见,这就是我的页面设置方式:

class TFS extends PHP_db
{
    public function execute() {
        class Dostuff {
            public static function doit() {
                return "wee";
            }
        }
    Now here I can use Dostuff:doit() successfully
    And also $this->db->functionhere() which is from the PHP_db is also successful from here

    }
}

我需要弄清楚如何在Dostuff类中的$this->db->functionhere()函数内调用doit()

我已经在Dostuff课程中试过了这个:

protected $parent_object;
public function __construct( $object ) {
    $this->parent_object = $object;
 }

这来自execute()函数:$dostuffclass = new Dostuff($this);

但是当我尝试使用$parent_object->db->functionhere()时它不起作用,告诉我它不是一个对象。

1 个答案:

答案 0 :(得分:0)

您可以将$this上下文作为参数传递给内部DoStuff类,例如:

class TFS extends PHP_db
{
    public function execute() {
        class Dostuff {
            public static function doit($somevar) {
                $somevar->functionhere();
                ^^^^ <-- add this
                return "wee";
            }
        }
    }
}

内部类DoStuff不需要了解您所引用的$this上下文,因为您要将对现有类实例的引用作为参数发送给它。