ArrayAccessインターフェースの例2 : PHP

Pocket

ArrayAccessインターフェースを実装すると、$this[$offset]で、内包している要素へアクセスできる。

class ArrayAccessConcrete implements ArrayAccess
{
    /**
     * @var []
     */
    private $data;

    public function __construct()
    {
        $this->data = [
            'a' => 'あ',
            'b' => 'い',
            'c' => 'う',
        ];
    }

    /**
     * @param $offset
     * @return mixed|null
     */
    public function getByOffset($offset) {
        return $this[$offset];
    }

    /**
     * @param mixed $offset
     * @param mixed $value
     */
    public function offsetGet($offset) {
        return $this->data[$offset] ?? null;
    }

    // ...
    // 著者注
    // offsetExists、offsetSet、offsetUnsetの実装
    // ...
}

$arrayAccess = new ArrayAccessConcrete();
echo $arrayAccess->getByOffset('a');

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。