Подтвердить что ты не робот

Массив объектов PHP

Итак, я искал какое-то время и не могу найти ответ на простой вопрос. Возможно ли иметь массив объектов в PHP? Например:

$ar=array();    
$ar[]=$Obj1    
$ar[]=$obj2

По какой-то причине я не смог найти ответ нигде. Я предполагаю, что это возможно, но мне просто нужно убедиться.

4b9b3361

Ответ 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>";