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);