我有兩個類; userFunction
和userDatabase
:通過類擴展的PHP類變量繼承
class userDatabase {
protected $database = 'btc.db';
protected $short;
protected $salt;
function __construct(){
$this->short = $this->salt = bin2hex(random_bytes(6));
}
}
class userFunction extends userDatabase {
function __construct(){
$this->database.PHP_EOL;
$this->short.PHP_EOL;
$this->salt.PHP_EOL;
}
}
$r = new userFunction;
var_dump($r);
輸出如下:
object(userFunction)#1 (3) {
["database":protected]=>
string(6) "btc.db"
["short":protected]=>
NULL
["salt":protected]=>
NULL
}
這不正是我所期待的。據推測我設置了$this->short
和$this->salt
從二進制數據生成一個隨機的6字符隨機十六進制鹽。我擴展了userDatabase
類以繼承變量到userFunction
,我希望能夠通過中的$this->salt
和$this->short
調用userFunction
。但是,變量返回爲NULL
。
我一直在尋找答案,爲什麼這是,但我似乎無法正確制定查詢,因爲我真的不知道這裏發生了什麼。 This seems to be a related issue, but I'm not entirely sure.具體來說,是否有可能完成我試圖以這種特定方式做的事情? $this->salt
和$this->short
的每個實例在每個類中都是相同的,還是兩者都不相同?我該如何解決我的NULL
問題,在這裏?
我很感謝幫助。
什麼是'$ this-> database.PHP_EOL'應該在做什麼?它沒有設置任何值,它不顯示任何東西 –
至少做這個$ this-> short。= PHP_EOL; –
'$ this-> database'實際上是:'protected $ database ='myDatabase.db';'。所以這是我測試的一部分,以確保我可以訪問變量作爲預期的跨類,這似乎與這個特定的實例一起工作,而不是'$ this-> short'或'$ this-> salt'。 – zQueal