andaniel05 / object-collection
v1.0.0
2016-10-04 00:53 UTC
This package is auto-updated.
Last update: 2024-08-29 03:42:09 UTC
README
表示同一类型的对象集合。
内部工作原理
内部使用原生数组来存储元素。在类的构造函数中,需要指定要存储的元素类型。这种元素类型可以是类名或接口名。在插入元素时,将检查新元素的类型是否与构造函数中指定的类型相匹配,因此保证数组只包含指定类型的元素。
要求
PHP 5.3+
使用示例
示例1. 使用类的基本操作。
<?php use Andaniel05\ObjectCollection\ObjectCollection; class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $andy = new Person('andy', 27); $andria = new Person('andria', 35); $sonia = new Person('sonia', 52); $antonio = new Person('antonio', 54); $collection = new ObjectCollection('Person'); // Inserción con índices. $collection['andy'] = $andy; $collection['andria'] = $andria; // Inserción sin índices (añade al final del array). $collection[] = $sonia; $collection[] = $antonio; // Recorridos en forma de array. Hay garantía de que $person será siempre una // instancia de la clase Person. foreach ($collection as $index => $person) { echo "Index: {$key}, Name: {$person->getName()}, Age: {$person->getAge()}\n"; } // Contar elementos. echo count($collection); // Devuelve 4. // Obtener elementos. $andy1 = $collection['andy']; // Comprobar existencia de elementos. echo isset($collection['andy']); // Devuelve TRUE. // Eliminar elementos. unset($collection['andria']); // Obtener el array de la colección. $array = $collection->getArray();
示例2. 创建自定义集合类型。
<?php use Andaniel05\ObjectCollection\ObjectCollection; /** * Tipo de colección personalizada que solo admite instancias de la clase 'Person'. */ class PersonCollection extends ObjectCollection { public function __construct() { parent::__construct('Person'); } } // Sobre las instancias de la clase PersonCollection se aplican las mismas // operaciones del ejemplo anterior. $collection = new PersonCollection;