40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
|
<?php
|
||
|
namespace nur\b\coll;
|
||
|
|
||
|
/**
|
||
|
* Trait TGenericArray: méthodes supplémentaires à utiliser avec les traits
|
||
|
* {@link TBaseArray} et {@link TIterableArray} pour que l'objet soit utilisable
|
||
|
*
|
||
|
*/
|
||
|
trait TGenericArray {
|
||
|
# ArrayAccess
|
||
|
function has($key): bool { return $this->_has($key); }
|
||
|
function &get($key, $default=null) { return $this->_get($key, $default); }
|
||
|
function set($key, $value): IArray { return $this->_set($key, $value); }
|
||
|
function add($value): IArray { return $this->_set(null, $value); }
|
||
|
function del($key): IArray { return $this->_del($key); }
|
||
|
# Iterator
|
||
|
function key() { return $this->_key(); }
|
||
|
function current() { return $this->_current(); }
|
||
|
|
||
|
function addAll(?array $values): IArray {
|
||
|
if ($values !== null) {
|
||
|
$index = 0;
|
||
|
foreach ($values as $key => $value) {
|
||
|
if ($key === $index) {
|
||
|
$this->add($value);
|
||
|
$index++;
|
||
|
} else {
|
||
|
$this->set($key, $value);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
function resetAll(?array $values): IArray {
|
||
|
$this->data = [];
|
||
|
return $this->addAll($values);
|
||
|
}
|
||
|
}
|