Learning php Classes, bloccato su __contruct ();

Quindi sto cercando di imparare phpOOP dopo aver interrotto la programmazione per alcuni anni, quindi sono un po 'arrugginito.

Ad each modo, ho un blog di classEntry in modo da poter visualizzare le voci del blog che sono state pulite con la function cleanForDisplay per echo'ing $ blogEntry-> articolo per esempio. Ma non ricevo errori e la variabile non viene visualizzata.

Grazie

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']; } } 

Hai un errore di battitura, il metodo magico è __construct() e non ricevi alcun errore perché il constructor non è obbligatorio in PHP.

Inoltre, la variabile $row non è definita, quindi i campi saranno nulli anche con il constructor.

Il tuo metodo è scritto in modo errato. Dovrebbe leggere __construct() .

In secondo luogo, non stai passando alcun parametro al metodo e, quindi, $row non è definita.

Considera quanto segue:

 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 viene passato come parametro e, quindi, le variables che stai cercando di impostare saranno definite.

La class blogEntry può essere inizializzata come segue:

 $blogEntry = new blogEntry($rowFromDB);