Php 从父函数的父类调用函数

Php 从父函数的父类调用函数,php,class,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() successf

比方说,为了简单起见,我的页面是这样设置的:

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类内的doit函数中调用$this->db->functionhere

我已经在Dostuff课程中尝试过:

protected $parent_object;
public function __construct( $object ) {
    $this->parent_object = $object;
 }
这来自于执行函数:$dostuffclass=newdostuff$this

但是当我尝试使用$parent\u object->db->function时,它不起作用,告诉我它不是一个对象。

您可以将$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上下文的任何信息,因为您正在将对现有类实例的引用作为参数发送给它。

您通常不会将类放入函数中。我得说这是你最大的错误。把它搬出去。除此之外,我很难理解你在做什么。但是,没有必要解释任何东西,除非你没有将类Dostuff移出函数。嗯,这会起作用的,我很感激有时间,但我得出结论,我实际上不需要Dostuff类中的任何东西,所以我只是要删除该类,只需按原样使用函数,这对我来说更有意义