В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Мудрый производительностью не имеет значения, что Вы используете. Различие - то, что mysql_fetch_object возвращает объект:
while ($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
mysql_fetch_assoc () возвращает ассоциативный массив:
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
}
и mysql_fetch_array () возвращает массив:
while ($row = mysql_fetch_array($result)) {
echo $row[0];
echo $row[1] ;
}
Что следует иметь в виду: массивы можно легко добавить в кэш памяти (eaccelerator, XCache, ..), а объекты - нет (их нужно сериализовать при хранении и не сериализовать при каждом извлечении!).
Вы можете переключиться на использование массивов вместо объектов, когда вы хотите добавить поддержку кэша памяти - но к этому времени вам, возможно, придется уже менять большой код, который использует возвращаемые значения ранее использованного типа объекта.
Выборка массива с mysql_fetch_array()
позволяет Вам цикл через набор результатов или через цикл foreach или через для цикла. mysql_fetch_object()
не может быть пересечен для цикла.
Не уверенный, если бы это даже имеет значение очень, просто думал, что я упомянул бы его.
while ($Row = mysql_fetch_object($rs)) {
// ...do stuff...
}
... то, как я всегда делал его. Я предпочитаю использовать объекты для наборов данных вместо массивов, так как они организуют данные немного лучше, и я знаю, что, намного менее вероятно, попытаюсь добавить произвольные свойства к объекту, чем я должен попытаться добавить индекс к массиву (в течение первых нескольких лет, я использовал PHP, я думал, что Вы не могли только присвоить произвольные свойства объекту, таким образом, они внушены, чтобы не сделать это).
Я думаю, что различие между всеми этими функциями незначительно, особенно, когда сравнено для кодирования удобочитаемости.
, Если Вы обеспокоены этим видом оптимизации, используйте mysql_fetch_row()
. Это является самым быстрым, потому что это не использует ассоциативные массивы (например, $row [2]), но является самым легким повредить Ваш код с ним.
Мудрый скоростью, mysql_fetch_object()
идентично mysql_fetch_array()
и почти так же быстр как mysql_fetch_row()
.
кроме того, с mysql_fetch_object()
Вы только будете в состоянии получить доступ к полевым данным названиями соответствующего поля.
Я голосую против mysql_fetch_array()
Поскольку вы возвращаете как численно проиндексированные столбцы, так и имена столбцов, это создает массив, который в два раза больше. Хорошо, если вам не нужно отлаживать код и просматривать его содержимое. Но для остальных из нас становится сложнее отлаживать, так как вам приходится пробираться вдвое больше данных в странном формате.
Иногда я сталкиваюсь с проектом, который использует эту функцию, а затем при отладке я думаю, что что-то пошло не так, потому что у меня есть числовые столбцы, смешанные с моими данными.
Так что во имя здравомыслия, пожалуйста, не используйте эту функцию, это усложняет обслуживание кода
mysql_fetch_array
затрудняет чтение вашего кода = a кошмар. Вы не можете сразу увидеть, с какими данными имеет дело ваш объект. Это немного быстрее, но если это важно для вас, вы обрабатываете так много данных, что PHP, вероятно, не подходит.
mysql_fetch_object
имеет некоторые недостатки, особенно если вы основываете на нем уровень базы данных.
Имена столбцов могут быть недопустимыми идентификаторами PHP, например, tax-allowance
или user.id
, если драйвер базы данных дает вам имя столбца, указанное в запросе.