对象初始化

时间:2014-07-12 13:16:22

标签: php

我正在尝试使用此构造函数实现类

<?php
namespace Application\Model;

class FicheModel
{
    private $idFiche;
    private $mois;
    private $annee;    
    private $nbFiches;
    private $statut;
    private $commentaire;

    public function __contruct($idFiche, $mois, $annee, $nbFiches, $statut, $commentaire)
    {
        $this->setIdFiche($idFiche);
        $this->setMois($mois);
        $this->setAnnee($annee);
        $this->setNbFiches($nbFiches);
        $this->setStatut($statut);
        $this->setCommentaire($commentaire);
    }

    public function getIdFiche() {return $this->idFiche;}
    public function getMois() {return $this->mois;}
    public function getAnnee() {return $this->annee;}
    public function getNbFiches() {return $this->nbFiches;}
    public function getStatut() {return $this->statut;}
    public function getCommentaire() {return $this->commentaire;}

    public function setIdFiche($idFiche) {$this->idFiche = $idFiche;}
    public function setMois($mois) {$this->mois = $mois;}
    public function setAnnee($annee) {$this->annee = $annee;}
    public function setNbFiches($nbFiches) {$this->nbFiches = $nbFiches;}
    public function setStatut($statut) {$this->statut = $statut;}
    public function setCommentaire($commentaire) {$this->commentaire = $commentaire;}
}
?>

这样

// I've tested the value of all of the arguments of them contains a value (aren't null)
$fiche = new \Application\Model\FicheModel($refhl, $mois, $annee, $nbFiches, $statut, '');

继续这种方式将对象的参数设置为null,我使用print_r(get_object_vars($fiche)来检查哪个回送Array()

如何解决这个问题,好吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

你班上没有构造函数。

您的代码中包含:

__contruct

应该是

__construct
     ^

这就是为什么您的课程资产尚未使用您想要的值进行初始化

答案 1 :(得分:0)

您将属性设置为null的假设是错误的。 get_object_vars将返回一个包含对象的所有可访问属性的数组。私有属性不可访问,因此不属于get_object_vars返回的数组的一部分。

您可以使用以下代码轻松检查字段的正确值:

$fiche = new \Application\Model\FicheModel($refhl, $mois, $annee, $nbFiches, $statut, '');
var_dump(array(
  $fiche->getIdFiche(),
  $fiche->getMois(),
  $fiche->getAnnee(),
  $fiche->getNbFiches(),
  $fiche->getStatut(),
  $fiche->getCommentaire()));

同时确保拼写错误__contruct不在原始代码中。