2013-07-20 86 views
2

我正在嘗試創建一個新對象,並將創建者作爲參數傳遞給構造函數。

public function update_user_score(&$response){ 
     $user_id   = $_POST['user_id']; 
     $score_details  = $_POST['score_details']; 
     require_once 'Score_manager.php'; 
     $score_manager = new Score_manager($this); 
     $score_manager->update_user_score($user_id, $score_details); 
     $response['success'] = 1; 
     $response['new_score'] = $new_score; 
     return; 
    } 

,並在Score_manager構造是:

// constructor 
function __construct($mfunc_helper) { 
    require_once 'DB_Connect.php'; 
    // connecting to database 
    $this->db = new DB_Connect(); 
    $this->db->connect(); 
    $this->$func_helper = $mfunc_helper; 
} 

一旦我得到TTO行$本 - > $ func_helper = $ mfunc_helper;我收到下一個錯誤「Undefined variable:func_helper ...」。我試圖通過& $這個,但我得到了「致命錯誤:呼叫時傳遞參考已被刪除...」。我究竟做錯了什麼 ?

回答

3

$this->$func_helper應該是$this->func_helper。您不需要在屬性名稱前加上額外的$。我個人認爲這是非常不一致的語法,但它是如何。 :(

你所得到的錯誤,是因爲PHP是搜索名爲$func_helper的局部變量,它要使用該變量的值找到$this屬性名。因此,實際上你沒有寫財產,但閱讀的局部變量,不存在爲此,您收到此錯誤

+3

而且PHP $之後永遠不需要&$。 –

1

你必須使用$this->func_helper並不是$此訪問類屬性 - 。。> $ func_helper但在不同的情況下發生的"Fatal error: Call-time pass-by-reference has been removed"錯誤

相關問題