Objektorientierte PHP-Arrays
Ich habe nie versucht, OO-PHP, bevor ich beschloss also, um ein einfaches CMS, um mehr zu erfahren. Ich habe ein problem beim laden Werte in ein mehrdimensionales array.
class Article {
private $index = 0;
private $article;
public function Article() {
$get_articles = mysql_query("SELECT * FROM `articles`");
while ($result = mysql_fetch_array($get_articles)) {
echo $result["article"];
$this->article[$index]["Tags"] = $result["tags"];
$this->article[$index]["Categories"] = $result["categories"];
$this->article[$index]["Date"] = $result["date"];
$this->article[$index]["Article"] = $result["article"];
$this->article[$index]["URL"] = $result["url"];
$index++;
}
}
public function getArticle($articleID) {
return $this->article[$articleID]["Article"];
}
public function getTags($articleNumber) {
}
public function getCategories($articleNumber) {
}
public function getDate($articleNumber) {
}
}
Die Linie echo $result["article"]
Ausgänge der einzige Artikel Wert, nur feine, aber anscheinend nicht setzen es in das array?
$art = new Article();
echo $art->getArticle(0);
Diese nicht ausgeben, der Artikel jedoch. Wäre jemand so freundlich darauf hinweisen, meine noob-Fehler???
Wo ist
Er machte es zu einem global, es ist auf der ersten Zeile von seinem code
Schauen Sie sich auch ArrayObject.
(nebenbei bemerkt) werden Sie aufgefordert, mehr feature-rich
$index
definiert in der Article()
Methode?Er machte es zu einem global, es ist auf der ersten Zeile von seinem code
Schauen Sie sich auch ArrayObject.
(nebenbei bemerkt) werden Sie aufgefordert, mehr feature-rich
mysqli
(ich für improved) Erweiterung über die mysql
Erweiterung. Auch mit dem class-name für den Konstruktor statt __construct
ist PHP4-syntax und wird (wie von PHP5.3.3) nicht mehr funktionieren, wenn Sie namespaces verwenden.InformationsquelleAutor Glenn Nelson | 2010-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du nicht initialisieren das array.
InformationsquelleAutor Sam Dufel
Sollte man wohl definieren Sie Ihre
$index
variable vor der Verwendung in der Schleife. Vielleicht legen Sie es auf den Primärschlüssel Feld, das Sie abrufen aus der Abfrage.Müssen Sie auch zum initialisieren der
$article
member-Variablen.Denken Sie daran, dass Sie definieren member-Variablen innerhalb einer Klasse verwiesen werden, die über
$this->
also Sie brauchen auch nicht zu definierenprivate $index = 0;
in Ihrer Klasse definition. Definieren Sie innerhalb der Methode.InformationsquelleAutor matpie
Werden Sie feststellen, das Sie verwendet
$this->article
aber nicht$this->index
wenn Sie möchten, um zu verfolgen die Länge für das Leben von dem Objekt, das Sie brauchen, um zu ersetzen$index
mit$this->index
InformationsquelleAutor tobyodavies