基本的に、1 つのクラス (この場合はクラス A) が別のクラス (この場合はクラス B) で関数を実行して、データベースから情報を取得する 2 つのクラスを作成しています。
ただし、B_runtime()
実際にデータベースを呼び出すと、エラーが発生しますCannot access protected property A::$db
。
私が理解していない__construct
のは、両方のクラスに 2 つあるにもかかわらず、PDO ステートメントがクラス A からのデータベース接続を使用して非常に永続的であるということです。
B_runtime()
これは、クラスAの外部から呼び出すと発生しないため、クラスA内から実行しているという事実と関係があると確信しています.
クラス A をパブリック変数に簡単に変更できることはわかっていprotected $db;
ますが、これを修正する方法については非常に興味があります。
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'];
}
}
長いコードで申し訳ありません - アイデアや提案があれば、大歓迎です。ありがとう。