nur-sery/nur_src/b/coll/TGenericArray.php

40 lines
1.1 KiB
PHP
Raw Normal View History

2023-12-03 22:10:18 +04:00
<?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);
}
}