0

数年間プログラミングをやめてからphpOOPを学ぼうとしているので、ちょっとサビ気味です。

とにかく、私はクラス blogEntry を持っているので、たとえば $blogEntry->article を echo することで、関数 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'];
  }
}
4

2 に答える 2

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);
于 2013-07-22T21:43:29.533 に答える
3

PHPでは__construct()コンストラクターが必須ではないため、エラーは発生しません。

また、$row変数は定義されていないため、コンストラクターを使用してもフィールドは null になります。

于 2013-07-22T21:42:09.497 に答える