Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Extensions > Как в пхп передаются объекты?


Автор: Vidocq 20.9.2005, 14:59
вот к примеру мне в цикле надо добавлять в массив объект какого-то класса....

Код

class sample
{
var str;
}

$instance = new sample();
$my_array = array();
while ($result = mysql_fetch_array($some_query))
{
$instance->str = $result['field_name'];
$my_array[] = $instance;
}


Вопрос: что будет в массиве? Один и тот же объект с последним значением $result['field_name'] или это будет массив копий объекта sample с разными значениями полей?
Кстати, как пхп ваще передаёт объекты, по ссылке или "по значению" (то есть его копию)?
Заранее спасибо.

Автор: Mal Hack 20.9.2005, 18:35
В 4 и как ссылку и как копию. В 5 только ссылка вроде.

Автор: AntonioBanderaz 21.9.2005, 00:23
Цитата(Mal @ 20.9.2005, 18:35)
В 5 только ссылка вроде.

Если делаешь изменения, то создается копия объекта... А так по ссылке.

Автор: Vidocq 21.9.2005, 11:29
Ээээээ .... так значит в массиве из примера будут копии? smile

Автор: Mal Hack 21.9.2005, 21:24
Цитата(Vidocq @ 21.9.2005, 12:29)
Ээээээ .... так значит в массиве из примера будут копии? smile

Тебя это волновать не должно. Твоя задача сохранить данные. Они сохранены будут.

Автор: IZ@TOP 10.2.2006, 11:45
Вообще в примере $instance->str Будет иметь последнее присвоенное значение из $result ячейки массива.

Автор: smartov 10.2.2006, 15:37
Цитата(Vidocq @ 20.9.2005, 13:59 Найти цитируемый пост)

$my_array[] = $instance;

Цитата(Vidocq @ 21.9.2005, 10:29 Найти цитируемый пост)

Ээээээ .... так значит в массиве из примера будут копии?

Да.

Автор: idler 2.3.2006, 17:49
Ну вы чего народ????ъВ пятом по умолчанию по ссылке, в четвертом по умолчанию по значению!!!!
Массивы и в том и в другом по умолчанию по значению!!!!

а передать если надо и в пятом можно и так и так!!!!!
а вот в четвертом не знаю smile - извиняйте!

Автор: Alone 3.3.2006, 11:47
Если надо в массив по ссылке - то:
$array[] = &$instance;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)