Intereting Posts
Как получить идентификатор последней обновленной строки в MySQL? Как закрыть вкладку браузера после отправки формы? Повторные данные PHP SimpleXML Как получить массив PHP $ _GET? Множественные возможности для ЛИНИИ, ПРЕРЫВАННЫХ И ПОЛЯМИ, ПРЕКРАЩЕННЫМИ – MySQL PHP / MySQL – как автоматически генерировать ссылку на удаление для строки в уже сгенерированной автоматически таблице? утвердить идентификацию личности с помощью системы печати пальцев в php & mysql Создать страницу, на которой отображаются файлы журнала Codeigniter на веб-странице. Как импортировать извлеченные данные Json в базу данных PHP-форма + Google reCAPTCHA htaccess перенаправляет все, кроме одной страницы, из html в php Как установить заголовок по умолчанию в Guzzle? Есть ли способ использовать jQuery для отправки формы без сложного поля путем разбивки поля? PHP Добавить тире для декодирования Как обрабатывать загрузку файлов в распределенном приложении?

Объектно-ориентированные массивы PHP

Я никогда не пробовал OO PHP раньше, поэтому решил сделать простую CMS, чтобы узнать больше. У меня проблема с загрузкой значений в многомерный массив.

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) { } } 

Линия echo $result["article"] выводит одно и только значение статьи просто отлично, но, по-видимому, не помещает его в массив?

 $art = new Article(); echo $art->getArticle(0); 

Однако это не выводит статью. Кто-то так любезно указал бы на мою ошибку?

Solutions Collecting From Web of "Объектно-ориентированные массивы PHP"

Вы не инициализировали свой массив.

 $this->article = array(); while ($result = mysql_fetch_array($get_articles)) { $this->article[$index] = array(); 

Вероятно, вы должны определить переменную $index перед ее использованием в цикле. Возможно, установите его в поле первичного ключа, которое вы извлекли из своего запроса.

 <?php $index = $result['id']; $this->article[$index]['tags'] = ... 

Вам также необходимо инициализировать переменную члена $article .

 <?php class Article { private $article = array(); 

Помните, что вы определяете переменные-члены в классе, на который нужно ссылаться через $this-> поэтому вам также не нужно определять private $index = 0; в определении вашего класса. Просто определите его внутри метода.

Вы заметите, что вы использовали $this->article но не $this->index если хотите отслеживать длину для жизни объекта, который вам нужен, чтобы заменить $index $this->index