-2

当我想将数组从 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();

但我不知道为什么作者的价值不显示。如果我对这个构造函数的看法完全错误,请指出我正确的方向。谢谢。

4

2 回答 2

1

类的构造函数应该是或者__construct()以该类命名的方法。我更喜欢第一个选项。第二个选项是遗留代码。

class News{

    public function  __construct(array $donnees){
        // This is where your constructor code goes
    }
}
于 2013-05-10T21:31:04.313 回答
0

你的构造函数应该被调用__construct()

class News{

      protected $erreurs = array(),
          $id,
          $auteur,
          $titre,
          $contenu;


     public function  __construct(array $donnees){
         $this->hydrate($donnees);
     }
}
于 2013-05-10T21:30:31.890 回答