学习php类,卡在__construct()上;

时间:2013-07-22 21:40:21

标签: php oop

所以我在停止编程几年后试图学习phpOOP,所以我有点生疏。

无论如何,我有一个类blogEntry,所以我可以通过echo'ing $ blogEntry->文章显示已使用函数cleanForDisplay清理的博客条目。但我没有收到错误,并且没有显示变量。

由于

class blogEntry
 {
  var $headline;
  var $author;
  var $date;
  var $image;
  var $imagecaption;
  var $article;

  public function __contruct()
  {
    $this->headline = cleanForDisplay($row['headline']);
    $this->author = cleanForDisplay($row['postedby']);
    $this->imagecaption = cleanForDisplay($row['imagecaption']);
    $this->article = cleanForDisplay($row['article']);
    $this->image = $row['image'];
    $this->date = $row['date'];
  }
}

2 个答案:

答案 0 :(得分:3)

你有一个拼写错误,魔术方法是__construct(),你没有收到任何错误,因为构造函数在PHP中不是强制性的。

此外,未定义$row变量,因此即使使用构造函数,您的字段也将为null。

答案 1 :(得分:3)

您的方法拼写错误。它应该是__construct()

其次,您没有向该方法传递任何参数,因此$row未定义。

请考虑以下事项:

public function __construct($row)
{
 $this->headline = cleanForDisplay($row['headline']);
 $this->author = cleanForDisplay($row['postedby']);
 $this->imagecaption = cleanForDisplay($row['imagecaption']);
 $this->article = cleanForDisplay($row['article']);
 $this->image = $row['image'];
 $this->date = $row['date'];
}

$row作为参数传入,因此,将定义您尝试设置的变量。

blogEntry类可以按如下方式初始化:

$blogEntry = new blogEntry($rowFromDB);