Массив объектов PHP
Итак, я искал какое-то время и не могу найти ответ на простой вопрос. Возможно ли иметь массив объектов в PHP? Например:
$ar=array();
$ar[]=$Obj1
$ar[]=$obj2
По какой-то причине я не смог найти ответ нигде. Я предполагаю, что это возможно, но мне просто нужно убедиться.
Ответы
Ответ 1
Лучшее место для поиска ответов на общие (и несколько простые вопросы), например, это читать на документах по PHP. В частности, в вашем случае вы можете больше узнать о объектах. Вы можете хранить stdObject и созданные объекты в массиве. На самом деле существует процесс, называемый hydration ', который заполняет переменные-члены объекта со значениями из строки базы данных, затем объект хранится в массиве ( возможно, с другими объектами) и возвращается к вызывающему коду для доступа.
- Изменить -
class Car
{
public $color;
public $type;
}
$myCar = new Car();
$myCar->color = 'red';
$myCar->type = 'sedan';
$yourCar = new Car();
$yourCar->color = 'blue';
$yourCar->type = 'suv';
$cars = array($myCar, $yourCar);
foreach ($cars as $car) {
echo 'This car is a ' . $car->color . ' ' . $car->type . "\n";
}
Ответ 2
Да.
$array[] = new stdClass;
$array[] = new stdClass;
print_r($array);
Результаты в:
Array
(
[0] => stdClass Object
(
)
[1] => stdClass Object
(
)
)
Ответ 3
Массивы могут содержать указатели, поэтому, когда я хочу массив объектов, я это делаю.
$a = array();
$o = new Whatever_Class();
$a[] = &$o;
print_r($a);
Это покажет, что объект ссылается и доступен через массив.
Ответ 4
Да, возможно наличие массива объектов в PHP.
class MyObject {
private $property;
public function __construct($property) {
$this->Property = $property;
}
}
$ListOfObjects[] = new myObject(1);
$ListOfObjects[] = new myObject(2);
$ListOfObjects[] = new myObject(3);
$ListOfObjects[] = new myObject(4);
print "<pre>";
print_r($ListOfObjects);
print "</pre>";