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

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

52 голосов
/ 23 декабря 2011

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

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

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

Ответы [ 4 ]

87 голосов
/ 23 декабря 2011

Лучшее место, чтобы найти ответы на общие (и несколько простые вопросы), такие как это, - прочитать 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";
}
24 голосов
/ 23 декабря 2011

Да.

$array[] = new stdClass;
$array[] = new stdClass;

print_r($array);

Результат:

Array
(
    [0] => stdClass Object
        (
        )

    [1] => stdClass Object
        (
        )

)
7 голосов
/ 05 декабря 2012

Массивы могут содержать указатели, поэтому, когда я хочу массив объектов, я делаю это.

$a = array();
$o = new Whatever_Class();
$a[] = &$o;
print_r($a);

Это покажет, что на объект ссылаются и доступ через массив.

6 голосов
/ 26 декабря 2012

Да, в PHP можно иметь массив объектов.

<code>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 "
";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...