nur-sery/wip/php/access/AbstractAccess.php

37 lines
844 B
PHP

<?php
namespace nur\sery\wip\php\access;
use nur\sery\cl;
abstract class AbstractAccess implements IAccess {
function available($src): bool {
return $this->exists($src) && $this->get($src) !== false;
}
function inc(&$dest): int {
$value = (int)$this->get($dest);
$this->set(++$value, $dest);
return $value;
}
function dec(&$dest, bool $allowNegative=false): int {
$value = (int)$this->get($dest);
if ($allowNegative || $value > 0) {
$this->set(--$value, $dest);
}
return $value;
}
function merge($values, &$dest): void {
$array = $this->get($dest);
$array = cl::merge($array, $values);
$this->set($array, $dest);
}
function append($value, &$dest, $key=null): void {
$array = $this->get($dest);
cl::set($array, $key, $value);
$this->set($array, $dest);
}
}