46 lines
1.4 KiB
PHP
46 lines
1.4 KiB
PHP
<?php
|
|
namespace nur\b\coll;
|
|
|
|
/**
|
|
* Trait TBaseArray: implémentation des méthodes de base pour être un objet
|
|
* array-like
|
|
*/
|
|
trait TBaseArray {
|
|
/** @var array */
|
|
protected $data;
|
|
|
|
function __toString(): string { return var_export($this->data, true); }
|
|
#function __debugInfo() { return $this->data; }
|
|
function &array(): ?array { return $this->data; }
|
|
function count(): int { return count($this->data); }
|
|
function keys(): array { return array_keys($this->data); }
|
|
|
|
function _has($key): bool {
|
|
return $this->data !== null && array_key_exists($key, $this->data);
|
|
}
|
|
function &_get($key, $default=null) {
|
|
if ($this->data !== null && array_key_exists($key, $this->data)) {
|
|
return $this->data[$key];
|
|
} else return $default;
|
|
}
|
|
function _set($key, $value) {
|
|
if ($key === null) $this->data[] = $value;
|
|
else $this->data[$key] = $value;
|
|
return $this;
|
|
}
|
|
function _del($key) {
|
|
unset($this->data[$key]);
|
|
return $this;
|
|
}
|
|
|
|
function offsetExists($key) { return $this->has($key); }
|
|
function &offsetGet($key) { return $this->get($key); }
|
|
function offsetSet($key, $value) { $this->set($key, $value); }
|
|
function offsetUnset($key) { $this->del($key); }
|
|
|
|
function __isset($name) { return $this->has($name); }
|
|
function &__get($name) { return $this->get($name); }
|
|
function __set($name, $value) { $this->set($name, $value); }
|
|
function __unset($name) { $this->del($name); }
|
|
}
|