<?php
class A {}
trait ArrayAccessor {
public function offsetSet($offset, $data) {}
public function offsetGet($offset) {}
public function offsetUnset($offset) {}
public function offsetExists($offset) {}
}
$test = new (extends A implements ArrayAccess { use ArrayAccessor; })(["hello", "world"]);
var_dump($test,
$test instanceof ArrayAccess,
$test instanceof A,
class_uses($test));
?>