我有这个功能:
public userID = 1;
public function setID($id)
{
$this->userID = $id;
}
它位于一个类中,因此该函数应将userID变量设置在顶部。正如您在此处所见,我创建了一个对象并使用正确的参数调用该函数:
$data = new Data();
$data->setID(($_SESSION['ID']));
会话ID确实可以使用我回显会话ID。
但是现在我有另一个函数来使用userID变量然后我得到错误:
未定义的变量:userID。
我使用这个变量的函数就是这个:
$ordSql = "INSERT INTO order(DATUM, KLANT_ID) VALUES($datum, $userID)";
$resultaat = mysqli_query($verbinding, $sql) or die (mysqli_error($verbinding));
这是我的setID函数下面的另一个函数。有谁知道如何解决这个问题?
答案 0 :(得分:4)
您缺少public $ 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();
答案 1 :(得分:0)
更改
$userID;
到
$this->userID;
答案 2 :(得分:0)
您必须使用$ this-&gt; userID而不是$ userID
$ordSql = "INSERT INTO order(DATUM, KLANT_ID) VALUES($datum, $this->userID )";
$resultaat = mysqli_query($verbinding, $sql) or die (mysqli_error($verbinding));
答案 3 :(得分: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));
答案 4 :(得分:0)
如错误所示,未设置变量$usedID
。设置了属性 userId
。
您正在尝试将类的属性用作变量,这是不可能的。 (你可能有另一个名为$ userID的变量,例如它在setter中很常见)
您应该始终使用$this->userId
而不是$userID
。