47 lines
1.2 KiB
PHP
47 lines
1.2 KiB
PHP
--TEST--
|
|
Internal handlers that do not explicitly support userland ArrayAccess
|
|
--EXTENSIONS--
|
|
zend_test
|
|
--FILE--
|
|
<?php
|
|
|
|
require_once __DIR__ . DIRECTORY_SEPARATOR . 'test_offset_helpers.inc';
|
|
|
|
class NoImplement extends DimensionHandlersNoArrayAccess {}
|
|
|
|
class DoImplement extends DimensionHandlersNoArrayAccess implements ArrayAccess {
|
|
public function offsetSet($offset, $value): void {
|
|
var_dump(__METHOD__);
|
|
var_dump($offset);
|
|
var_dump($value);
|
|
}
|
|
public function offsetGet($offset): mixed {
|
|
var_dump(__METHOD__);
|
|
var_dump($offset);
|
|
return "dummy";
|
|
}
|
|
public function offsetUnset($offset): void {
|
|
var_dump(__METHOD__);
|
|
var_dump($offset);
|
|
}
|
|
public function offsetExists($offset): bool {
|
|
var_dump(__METHOD__);
|
|
var_dump($offset);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
$no = new NoImplement();
|
|
$do = new DoImplement();
|
|
|
|
$no['foo'];
|
|
exportObject($no);
|
|
|
|
$do['foo'];
|
|
exportObject($do);
|
|
|
|
?>
|
|
--EXPECT--
|
|
NoImplement, read: true, write: false, has: false, unset: false, readType: BP_VAR_R, hasOffset: true, checkEmpty: uninitialized, offset: 'foo'
|
|
DoImplement, read: true, write: false, has: false, unset: false, readType: BP_VAR_R, hasOffset: true, checkEmpty: uninitialized, offset: 'foo'
|