Поэтому я искал какое-то время и не могу найти ответ на простой вопрос. Возможно ли иметь массив объектов в PHP? Такие как:
$ar=array(); $ar[]=$Obj1 $ar[]=$obj2
По какой-то причине я не смог найти ответ нигде. Я предполагаю, что это возможно, но мне просто нужно убедиться.
Лучшее место для поиска ответов на общие (и несколько простые вопросы), например, это чтение документов PHP . В частности, в вашем случае вы можете больше узнать об объектах . Вы можете хранить stdObject и созданные объекты в массиве. Фактически, существует процесс, известный как « гидратация », который заполняет переменные-члены объекта значениями из строки базы данных, затем объект хранится в массиве (возможно, с другими объектами) и возвращается в вызывающий код для доступа.
— Редактировать —
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"; }
Да.
$array[] = new stdClass; $array[] = new stdClass; print_r($array);
Результаты в:
Array ( [0] => stdClass Object ( ) [1] => stdClass Object ( ) )
Массивы могут содержать указатели, поэтому, когда мне нужен массив объектов, я это делаю.
$a = array(); $o = new Whatever_Class(); $a[] = &$o; print_r($a);
Это покажет, что объект ссылается и доступен через массив.
Да, возможно иметь массив объектов в 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>";