【发布时间】:2018-04-11 14:39:18
【问题描述】:
我会尝试使用 fetch_object('Classname') 来测试这个方法。
Inserent.php 中的类 Inserent:
namespace classes\model;
class Inserent{
private $nummer;
private $nickname;
private $email;
public function __construct ($nummer, $nickname, $email){
$this->nummer = $nummer;
$this->nickname = $nickname;
$this->email = $email;
}
public function getNummer(){
return $this->nummer;
}
public function setNummer($nummer){
$this->nummer = $nummer;
}
...
}
在一个Mapper-Class InserentDAO.php中使用:
namespace classes\mapper;
use classes\model\Inserent;
class InserentDAO{
private $dbConnect;
public function __construct (){
$this->dbConnect = MySQLDatabase::getInstance();
}
public function readAll(){
$sql = "SELECT inserentennummer, nickname, email FROM inserent";
$inserent = null;
$inserentList = array();
if ($result = $this->dbConnect->query($sql)) {
while ($inserent = $result->fetch_object('classes\model\Inserent')) {
$inserentList[] = $inserent;
}
$result->close();
}
return $inserentList;
}
...
}
我收到错误,我的对象是空的:
警告:classes\model\Inserent::__construct() 缺少参数 1 在 D:\xampp\htdocs\workspace\secondStep\classes\model\Inserent.php 上 第 10 行
警告:classes\model\Inserent::__construct() 缺少参数 2 在 D:\xampp\htdocs\workspace\secondStep\classes\model\Inserent.php 上 第 10 行
警告:缺少 classes\model\Inserent::__construct() 的参数 3 在 D:\xampp\htdocs\workspace\secondStep\classes\model\Inserent.php 上 第 10 行
注意:未定义变量:nummer in D:\xampp\htdocs\workspace\secondStep\classes\model\Inserent.php 上 第 11 行
注意:未定义变量:昵称 D:\xampp\htdocs\workspace\secondStep\classes\model\Inserent.php 上 第 12 行
注意:未定义的变量:电子邮件 D:\xampp\htdocs\workspace\secondStep\classes\model\Inserent.php 上 第 13 行
但如果我在 Mapper 中更改代码,它会起作用。
部分代码改为 InserentDAO.php:
while ($obj = $result->fetch_object()) {
$inserent = new Inserent($obj->inserentennummer, $obj->nickname, $obj->email);
$inserentList[] = $inserent;
}
【问题讨论】:
-
哪一行是什么?
-
您查看手册了吗?您需要阅读一些 cmets 和文本。
标签: php oop mysqli namespaces