本质上,我只是创建两个类,其中一个类(在本例中为A类)在另一个类(在本例中为B类)中运行一个函数,以从数据库中获取一些信息.
但是,当B_runtime()实际调用数据库时,我得到错误无法访问受保护的属性A :: $db.
我不明白的是,即使我在两个类中都有两个__construct,PDO语句在使用A类的数据库连接时非常持久.
我确信这与我在A类中运行B_runtime()的事实有关,因为如果我从A类外部调用它,就不会发生这种情况.
我知道我可以简单地更改受保护的$db;但是,在A类公共变量中,我真的很好奇如何解决这个问题.
ob_start();
include('/config.php');
ob_end_clean();
$A = new A($db);
$B = new B($db);
echo $A->A_runtime();
class A{
protected $db;
public function __construct($db){
$this->db = $db;
}
public function A_runtime(){
return B::B_runtime();
}
}
class B{
protected $db;
public function __construct($db){
$this->db = $db;
}
public function B_runtime(){
$preparedStatement = $this->db->prepare('SELECT * FROM z_mod_html WHERE ModuleLink = :moduleid LIMIT 1');
$preparedStatement->execute(array(':moduleid' => '1'));
$rows = $preparedStatement->fetchAll();
return $rows[0]['HTML'];
}
}
很抱歉有很多代码 – 如果有人有任何想法或建议,将不胜感激.谢谢.