【发布时间】:2013-07-29 20:30:12
【问题描述】:
我有一个“事件”类,我通过mysqli_fetch_object 创建对象。 __construct() 函数正在运行并且正在设置对象变量,但它们未在 __construct() 函数中设置。
我正在使用以下行来创建对象:
$events[$x] = $result->fetch_object("Event")
当我通过调用$events[$x]->eventPlaces(); 运行以下函数时,它会回显变量。
public function eventPlaces()
{
echo $this->capacity;
}
但是,在构造函数中使用相同的代码时,它什么也不回显。
public function __construct()
{
echo $capacity;
echo $this->capacity;
}
抱歉,如果我解释得不好,我刚刚重新开始编码,OO php 对我来说是新的,如果我遗漏了什么,请告诉我。
【问题讨论】:
-
是$this->在调用构造函数之前设置的容量值吗?
-
你在哪里设置
$this->capacity? -
说实话我不知道。我曾经把它写在 __construct() 括号内,并且在函数中有 $this->capacity = $capacity;但后来我意识到 $this->capacity 或 $capacity 在 __construct() 函数中都没有值。我删除了它们,不知何故 $capacity 仍在设置中。我假设在 db 中有一个“容量”列,它将 $capacity 变量设置为 fetch_object() 的一部分。
-
php.net/manual/en/mysqli-result.fetch-object.php 在调用对象的构造函数之前设置属性。
-
感谢 cbuckley 知道这真的很有用。未来需要开始使用正确的术语!变量和属性。
标签: php object mysqli construct