Files
yii2/tests/data/base/ArrayAccessObject.php
2025-09-30 01:33:08 +03:00

92 lines
2.1 KiB
PHP

<?php
/**
* @link https://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license https://www.yiiframework.com/license/
*/
declare(strict_types=1);
namespace yiiunit\data\base;
use ArrayAccess;
use ReturnTypeWillChange;
/**
* ArrayAccessObject
* Object that extends [[TraversableObject]] and implements `\ArrayAccess`
* Used for testing support for ArrayAccess object instead of arrays.
* @author Dmytro Naumenko <d.naumenko.a@gmail.com>
* @since 2.0.14.1
*/
class ArrayAccessObject extends TraversableObject implements ArrayAccess
{
/**
* Whether a offset exists
*
* @link https://www.php.net/manual/en/arrayaccess.offsetexists.php
* @param mixed $offset <p>
* An offset to check for.
* </p>
* @return boolean true on success or false on failure.
* </p>
* <p>
* The return value will be casted to boolean if non-boolean was returned.
* @since 2.0.14.1
*/
public function offsetExists($offset): bool
{
return isset($this->data[$offset]);
}
/**
* Offset to retrieve
*
* @link https://www.php.net/manual/en/arrayaccess.offsetget.php
* @param mixed $offset <p>
* The offset to retrieve.
* </p>
* @return mixed Can return all value types.
* @since 2.0.14.1
*/
#[ReturnTypeWillChange]
public function offsetGet($offset)
{
return $this->data[$offset];
}
/**
* Offset to set
*
* @link https://www.php.net/manual/en/arrayaccess.offsetset.php
* @param mixed $offset <p>
* The offset to assign the value to.
* </p>
* @param mixed $value <p>
* The value to set.
* </p>
* @return void
* @since 2.0.14.1
*/
public function offsetSet($offset, $value): void
{
$this->data[$offset] = $value;
}
/**
* Offset to unset
*
* @link https://www.php.net/manual/en/arrayaccess.offsetunset.php
* @param mixed $offset <p>
* The offset to unset.
* </p>
* @return void
* @since 2.0.14.1
*/
public function offsetUnset($offset): void
{
unset($this->data[$offset]);
}
}