<?php
//Source: https://bugs.php.net/bug.php?id=54367
class MyObjet implements ArrayAccess
{
// All the stuff for ArrayAccess
public function offsetGet ($offset)
{
return function ($var) use ($offset) { // here is the problem
return sprintf('<%s>%s</%$1s>', $offset, $var);
};
}
}
$a = new MyObjet();
echo $a['p']('foo');
Deprecated: Return type of MyObjet::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/dbSv4 on line 8
Fatal error: Class MyObjet contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods (ArrayAccess::offsetExists, ArrayAccess::offsetSet, ArrayAccess::offsetUnset) in /in/dbSv4 on line 4
Process exited with code 255.
Fatal error: Class MyObjet contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods (ArrayAccess::offsetExists, ArrayAccess::offsetSet, ArrayAccess::offsetUnset) in /in/dbSv4 on line 4
Process exited with code 255.
Fatal error: Class MyObjet contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods (ArrayAccess::offsetExists, ArrayAccess::offsetSet, ArrayAccess::offsetUnset) in /in/dbSv4 on line 14
Process exited with code 255.
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17
Parse error: syntax error, unexpected T_FUNCTION in /in/dbSv4 on line 10
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_FUNCTION in /in/dbSv4 on line 10
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting '{' in /in/dbSv4 on line 4
Process exited with code 255.