【发布时间】:2013-10-18 02:33:09
【问题描述】:
我将编辑问题以使其更清晰,这样您就可以看到我现在得到了什么,并更容易理解问题。
<?php
$mysqli = new mysqli("localhost", "user", "password", "test");
class building
{
private $mysqli;
public $buildingid;
public $userid;
public $buildinglevel;
public function __construct($buildingid, $userid, \mysqli $mysqli)
{
$this->buildinglevel;
$this->mysqli = $mysqli;
}
public function getLevel()
{
return $this->mysqli->query("SELECT ".$this->buildingid." FROM worlds WHERE city_userid=".$this->userid."");
}
}
}
?>
那我用这个来创建和使用函数:
$cityHall = new building("cityHall",$user['id'],$mysqli);
echo $cityHall->getLevel();
这变成了空白,什么也没有发生。
【问题讨论】:
-
在构造函数中做,这就是它的目的。
-
我尝试将它添加到构造函数中,但我不想每次都重新定义 $mysqli 的值,似乎浪费时间?所以基本上,我怎样才能将 $mysqli 保留在 Class 之外并导入它,以便能够在构造函数内部执行查询?
-
询问代码的问题应包括尝试过的解决方案、这些解决方案做了什么以及您预期会发生什么。 (又名“某人必须对某个问题有最低限度的了解才能在 SO 上提出问题”)
-
@Narf 虽然您可以在构造函数中进行计算,但这是一个糟糕的想法,几乎不可能进行单元测试。构造函数主要用于初始化类状态(即注入适当的依赖项)
标签: php mysql oop mysqli integrate