让我们说,为简单起见,这就是我的页面设置方式:
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()
时它不起作用,告诉我它不是一个对象。
答案 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
上下文,因为您要将对现有类实例的引用作为参数发送给它。