Когда извлекать результаты базы данных в виде объектов и массивов в PHP? и почему?
Я всегда получал результаты базы данных как Arrays
, а не как Objects
, и причина в том, что PHP предоставляет так много функций для управления arrays
, что это облегчает мою жизнь.
Я рассмотрел этот вопрос SO Объекты или массивы?
Но это не отвечает на мой вопрос. Парень, который раньше работал в моем проекте, всегда получал результаты как Objects
, и мне было очень трудно преобразовать их в arrays
, а затем манипулировать ими, так как я генерировал потенциальных клиентов статистика. Функции массива упростили это.
Есть ли простой способ сделать это? или любая другая альтернатива? Зачем идти на Objects
, а не Arrays
?
ПРИМЕЧАНИЕ: Я не рассматриваю performance
, но мой ease of manipulation
.
1 answers
В PHP нет абсолютно никакого важного преимущества в возврате экземпляра объекта stdClass по сравнению с обычным массивом.
И вы поняли, что, если вы возвращаете массив, вы можете использовать функцию moltitude php array_*
для манипулирования данными, и это большое преимущество.
Конечно, в любом случае вы можете конвертировать туда и обратно в объект и массив, просто приведя его:
$array = (array) $object;
$object = (object) $array;
Вам предоставляется возможность выбрать получение объектов, потому что это обычная практика используйте ORM при запросе базы данных. (Обязательная цитата: ОРМ Вьетнам)
Обратите внимание, что с помощью PDO вы можете возвращать объект, указанный вами на основе вашего запроса, например:
$stmt = $dbh->query("SELECT * FROM animals");
$stmt->setFetchMode(PDO::FETCH_INTO, new animals);
Но на данный момент вы просто должны использовать ORM, если вам нужны объекты