0 レビュー
1 回答
別のクラスを参照するコンストラクターに組み込まれたphpクラスでアクセス可能な変数?
つまり、ログインクラスで、関数内にDBクラスの新しいインスタンスを作成する必要がないようにする必要があります。現在、私はこのようにしようとしています:
<?php
class siteLogin
{
private $db;
private $dataStore;
function __construct()
{
if (!isset($_SESSION)) {
session_start();
}
require_once '../application/db.php';
$this->$db = new DB();
require_once '../application/data.php';
$this->$dataStore = new Data($db);
}
しかし、エラーが発生します:
Fatal error: Cannot access empty property in C:\var\www\sexdiaries.co.uk\class\siteLoginClass.php on line 16
$this->$db
にsiteLogin
クラスへの参照を与えたいと思います。
わからない
0
レビュー
答え :
解決策:
プロパティに正しい表記を使用していません。代わりにこれを試してください:
$this->db = new DB();
$this->dataStore = new Data($db);
通常の変数のように、接頭辞として $
を付けることはありません。これは、PHPで変数プロパティ名を使用できるためです。例:
$ foo ='db';
echo $ this-> $ foo; // `echo $this->db;`と同等
あなたの場合、 $ db
は未定義の変数であり、空の文字列に初期化されました(ただし、PHP通知がトリガーされますが、エラー報告はありますか?) 、したがって、同じ名前のプロパティに効果的にアクセスしようとしたため、エラー Cannot access empty property
。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。