2015-04-07 84 views
0

我有這樣的功能:爲什麼這個類屬性沒有在PHP中被修改?

public userID = 1; 

public function setID($id) 
    { 
     $this->userID = $id; 

    } 

它位於一類,所以這個功能應該設置在頂部的用戶ID變量。正如你可以在這裏看到我創建一個對象,並調用函數與正確的參數:

$data = new Data(); 
$data->setID(($_SESSION['ID'])); 

會話ID確實是可以使用我回顯會話ID。

但現在我還有一個功能,使用用戶ID變量,然後我得到的錯誤:

Undefined variable: userID.

我使用這個變量的函數,這是一個:

$ordSql = "INSERT INTO order(DATUM, KLANT_ID) VALUES($datum, $userID)"; 
$resultaat = mysqli_query($verbinding, $sql) or die (mysqli_error($verbinding)); 

這是另一種函數在我的setID函數下面。有誰知道如何解決這一問題?

+0

您是否開始會話? –

+0

是的,我在另一個包含的文檔中有這個。我也在我的帖子中說過。 – user1743508

+0

如果您在使用用戶ID的函數上出現錯誤,您應該向我們顯示此功能 – Sugar

回答

0

變化

$userID; 

$this->userID; 
+0

當我將這段代碼添加到堆棧時,我輸入錯了,很抱歉 – user1743508

+0

@ user1743508:如果問題不是您所擁有的內容的準確反映,請對其進行編輯。 – halfer

0

你必須使用這個 - $>用戶ID,而不是$用戶ID

$ordSql = "INSERT INTO order(DATUM, KLANT_ID) VALUES($datum, $this->userID)"; 
$resultaat = mysqli_query($verbinding, $sql) or die (mysqli_error($verbinding)); 
0

它被張貼,但刪除了這同樣是該解決方案:

$ordSql = "INSERT INTO order(DATUM, KLANT_ID) VALUES($datum, $this->userID)"; 
$resultaat = mysqli_query($verbinding, $sql) or die (mysqli_error($verbinding)); 

代替:

$ordSql = "INSERT INTO order(DATUM, KLANT_ID) VALUES($datum, $userID)"; 
$resultaat = mysqli_query($verbinding, $sql) or die (mysqli_error($verbinding)); 
0

由於錯誤說,該變量$usedID未設置。 屬性userId雖然設置。

您試圖將該類的屬性用作變量,這是不可能的。 (您可能有另一個變量,名稱爲$ userID,例如在setters中相當常見)

您應始終使用$this->userId而不是$userID

4

您在公共$ userId變量上缺少$。此示例打印42:

<?php 

class Data { 
    public $userId = 1; 

    public function setId($id) { 
     $this->userId = $id; 
    } 

    public function otherFunction() { 
     echo $this->userId; 
    } 
} 

$data = new Data(); 
$data->setId(42); 
$data->otherFunction(); 
相關問題