Как я создаю список или массив объектов в PHP?

Для этого вы захотите использовать IOKit, в частности функции IOPowerSources . Вы можете использовать IOPSCopyPowerSourcesInfo(), чтобы получить блоб, и IOPSCopyPowerSourcesList(), чтобы затем извлечь из него CFArray, перечисляя источники питания. Затем используйте IOPSGetPowerSourceDescription() для извлечения словаря (содержание словаря см. В IOPSKeys.h ).

11
задан James 9 August 2015 в 17:07
поделиться

3 ответа

$items = array();

while($row = mysql_fetch_array($result, MYSQL_BOTH)) {
    $items[] = $row;
}
echo 'Count of Order Items...', count($items);
15
ответ дан 3 December 2019 в 05:58
поделиться

То, что опубликовал orlandu63, верно - использование $ items [] = $ row означает, что $ row добавляется численно как следующий элемент $ items.

Другой вариант: если в $ row есть поле id, вы можете сделать $ items [$ row-> id] = $ row; , что позволяет индексировать ваш массив и упростить его найти данный элемент.

Я действительно предлагаю прочитать http://www.php.net/manual/en/language.types.array.php , где вы найдете некоторые интересные вещи, которые PHP допускает с массивами.

1
ответ дан 3 December 2019 в 05:58
поделиться
  • $ this-> Products = getOrderItems (); разрешен в PHP, но он относится к (глобальной) функции getOrderItems () вместо класса метод. методы и переменные класса всегда должны иметь префикс $ this -> (или self :: , если они статические переменные) при вызове изнутри класса.
    в вашем примере кода вы ошиблись. getOrderItems определяется как метод класса, но ваш вызов не привязан к $ this -> , поэтому php принимает функцию. он должен выдать функцию не найдена -error.

  • нотация [] добавляет элемент в конец массива.

  • индекс первого элемента в вашем примере кода равен 1 ( разве это не стандартный случай для VB?). php обычно начинается с 0, хотя возможно (поскольку php-массивы не являются настоящими массивами) начать с произвольных индексов, я бы рекомендовал придерживаться нуля.

  • mysql_fetch_array - это древний способ по работе с mysql. в настоящее время вам лучше использовать mysqli или (даже лучше) PDO.

  • (...) список или массив в php.

    списки, массивы, стеки, что угодно: в php все является упорядоченной картой (вводит в заблуждение называемый массив):

    PHP: Массивы : Массив в PHP на самом деле является упорядоченной картой. Карта - это тип, который связывает значения с ключами. Этот тип оптимизирован для нескольких различных целей; его можно рассматривать как массив, список (вектор), хеш-таблицу (реализацию карты), словарь, коллекцию, стек, очередь и, возможно, многое другое. Так как значения массива могут быть другими массивами, деревья и многомерные массивы также возможны.

обновление:

извините, у меня сейчас нет времени, чтобы объяснить более тонкие нюансы pdo / mysqli поверх mysql .

так что вот только основы:

  • oop: pdo и mysqli объектно-ориентированы (у сложных mysqli есть функциональные псевдонимы)

  • операторы: наиболее важные: pdo / mysqli получили подготовленные операторы. это означает, что вы сначала готовите запрос с заполнителями один раз, затем заполните значения позже (без необходимости готовить запрос во второй раз). у этого подхода есть 3 очевидных преимущества:

    • производительность: он быстрее, потому что базе данных нужно только один раз проанализировать, скомпилировать и оптимизировать запрос (по крайней мере, со сложными запросами)

    • безопасность: нет необходимости в строках в кавычках (происходит автоматически!), что затрудняет атаки с использованием sql-инъекций

    • ремонтопригодность: логическая и информационная части запроса разделены, поэтому их легче читать, и вам не нужно много делать of string Concnation

  • управляемый драйвером: pdo не зависит от базы данных. существует несколько поддерживаемых db-систем, что упрощает перенос вашего кода на другие db-backends (но это не уровень db-абстракции, такой как ODBC,

4
ответ дан 3 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: