2017-10-18 36 views
0

我很困惑如何正確訪問父類中的變量,這是在子類中設置的。php類和擴展,變量範圍混淆

說我們有父類(如$用戶):

class user 
{ 
    public $details = []; 
} 

兒童類(如$登錄):

class login extends user 
{ 
    function do_login() 
    { 
     // something before here to grab their details from the DB 
     $this->details = $grabbed_user_details; 
    } 
} 

然後在調用一切,我希望做腳本例如:

$user = new user(); 
$login = new login(); 
$login->do_login(); 
$user->details['username']; 

但是,「細節」似乎是空的。我完全錯誤的方式嗎?不要以爲我對範圍還是很瞭解。

+0

還沒有存儲在'$ user'但在'$ login'什麼。嘗試'$ login-> details ['username']' – LKKP4ThX

+0

這就是我困惑的地方,我想通過在login類中設置它,因爲它擴展了用戶類,它會將它設置爲$ user? – NaughtySquid

+0

不是,登錄名是用戶以及您在登錄類中創建的擴展名。 – LKKP4ThX

回答

1
$user = new user(); 

這將創建一個新的對象與它的details屬性是一個空數組。

$login = new login(); 

這將創建第二個新的對象與它自己details屬性是一個空數組。

$login->do_login(); 

這將填充$login對象的數組details$user對象的details保持空白。

要到上人口的數組:

$login->details['username'];