当我想将PDO中的数组添加到类新闻的构造函数时,我遇到了问题:
class News{
protected $erreurs = array(),
$id,
$auteur,
$titre,
$contenu;
public function __News(array $donnees){
$this->hydrate($donnees);
}
public function hydrate(array $donnees)
{
foreach ($donnees as $key => $value)
{
$method = 'set'.ucfirst($key);
if (method_exists($this, $method))
{
$this->$method($value);
}
}
}
具有功能的类管理器通过id获取新闻:
public function getUnique($id){
$id = (int)$id;
$sql = $this->db->prepare('SELECT id, auteur, titre, contenu FROM news WHERE id = ?');
$sql->bindParam('1', $id);
$sql->execute();
$mang = $sql->fetch(PDO::FETCH_ASSOC);
return new News($mang);
}
和索引。 php
$db = new PDO('mysql:host=localhost;dbname=new', 'root','');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$manager = new Manager($db);
$uniqueNews = $manager->getUnique(2);
echo 'id : '.$uniqueNews->getAuteur();
但我不知道为什么没有显示auteur的价值。如果我对这个构造完全错误,请指出我正确的方向。感谢。
答案 0 :(得分:1)
类的构造函数应该是__construct()
或以该类命名的方法。我更喜欢第一种选择。第二个选项是遗留代码。
class News{
public function __construct(array $donnees){
// This is where your constructor code goes
}
}
答案 1 :(得分:0)
您的构造函数应该调用__construct()
class News{
protected $erreurs = array(),
$id,
$auteur,
$titre,
$contenu;
public function __construct(array $donnees){
$this->hydrate($donnees);
}
}