Update FlatArrayTrait.php
This commit is contained in:
parent
12bda5378a
commit
9ff7dd003e
1 changed files with 32 additions and 0 deletions
|
@ -5,9 +5,23 @@ namespace Flatrr;
|
||||||
trait FlatArrayTrait
|
trait FlatArrayTrait
|
||||||
{
|
{
|
||||||
private $_arrayData = array();
|
private $_arrayData = array();
|
||||||
|
private $_locked = false;
|
||||||
|
|
||||||
|
public function lock()
|
||||||
|
{
|
||||||
|
$this->_locked = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function unlock()
|
||||||
|
{
|
||||||
|
$this->_locked = false;
|
||||||
|
}
|
||||||
|
|
||||||
public function push(?string $name, $value)
|
public function push(?string $name, $value)
|
||||||
{
|
{
|
||||||
|
if ($this->_locked) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
$arr = $this->get($name);
|
$arr = $this->get($name);
|
||||||
if ($arr !== null && !is_array($arr)) {
|
if ($arr !== null && !is_array($arr)) {
|
||||||
return;
|
return;
|
||||||
|
@ -21,6 +35,9 @@ trait FlatArrayTrait
|
||||||
|
|
||||||
public function pop(?string $name)
|
public function pop(?string $name)
|
||||||
{
|
{
|
||||||
|
if ($this->_locked) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
$arr = $this->get($name);
|
$arr = $this->get($name);
|
||||||
if ($arr !== null && !is_array($arr)) {
|
if ($arr !== null && !is_array($arr)) {
|
||||||
return;
|
return;
|
||||||
|
@ -32,6 +49,9 @@ trait FlatArrayTrait
|
||||||
|
|
||||||
public function unshift(?string $name, $value)
|
public function unshift(?string $name, $value)
|
||||||
{
|
{
|
||||||
|
if ($this->_locked) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
$arr = $this->get($name);
|
$arr = $this->get($name);
|
||||||
if ($arr !== null && !is_array($arr)) {
|
if ($arr !== null && !is_array($arr)) {
|
||||||
return;
|
return;
|
||||||
|
@ -45,6 +65,9 @@ trait FlatArrayTrait
|
||||||
|
|
||||||
public function shift(?string $name)
|
public function shift(?string $name)
|
||||||
{
|
{
|
||||||
|
if ($this->_locked) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
$arr = $this->get($name);
|
$arr = $this->get($name);
|
||||||
if ($arr !== null && !is_array($arr)) {
|
if ($arr !== null && !is_array($arr)) {
|
||||||
return;
|
return;
|
||||||
|
@ -56,6 +79,9 @@ trait FlatArrayTrait
|
||||||
|
|
||||||
public function set(?string $name, $value)
|
public function set(?string $name, $value)
|
||||||
{
|
{
|
||||||
|
if ($this->_locked) {
|
||||||
|
return $this->get($name);
|
||||||
|
}
|
||||||
return $this->flattenSearch($name, $value);
|
return $this->flattenSearch($name, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,6 +92,9 @@ trait FlatArrayTrait
|
||||||
|
|
||||||
public function unset(?string $name)
|
public function unset(?string $name)
|
||||||
{
|
{
|
||||||
|
if ($this->_locked) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
$this->flattenSearch($name, null, true);
|
$this->flattenSearch($name, null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,6 +149,9 @@ trait FlatArrayTrait
|
||||||
*/
|
*/
|
||||||
public function merge($value, string $name = null, bool $overwrite = false)
|
public function merge($value, string $name = null, bool $overwrite = false)
|
||||||
{
|
{
|
||||||
|
if ($this->_locked) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
if (!isset($this[$name])) {
|
if (!isset($this[$name])) {
|
||||||
//easiest possible outcome, old value doesn't exist, so we can just write the value
|
//easiest possible outcome, old value doesn't exist, so we can just write the value
|
||||||
$this->set($name, $value);
|
$this->set($name, $value);
|
||||||
|
|
Loading…
Reference in a new issue