编辑:删除原始示例,因为它很复杂。
下面提供的代码不起作用。我试图访问在父类中声明的类中定义的方法。
以下是示例代码。它不起作用,我想知道为什么
<?php
function & get_instance()
{
return Main::get_instance();
}
class Db{
function select($var)
{
echo $var;
}
}
class Main
{
public $db ;
public $process ;
private static $instance;
function __construct()
{
self::$instance = &$this;
$this->db = new Db ;
$this->process = Process;
}
public static function & get_instance()
{
return self::$instance;
}
}
class Process{
private $main ;
function __construct()
{
$this->main = get_instance() ;
}
function processPayment()
{
$this->main->db->select("hello");
}
}
$main = new Main ;
$main->process->processPayment();
答案 0 :(得分:1)
要访问父类的成员,您必须声明这些成员protected
或public
。
例如:
public var $db;
protected var $orders;