mirror of
https://github.com/php/php-src.git
synced 2024-12-13 20:05:26 +08:00
47 lines
1006 B
PHP
47 lines
1006 B
PHP
--TEST--
|
|
Bug #41209 (Segmentation fault with ArrayAccess, set_error_handler and undefined var)
|
|
--FILE--
|
|
<?php
|
|
|
|
class env
|
|
{
|
|
public function __construct()
|
|
{
|
|
set_error_handler(array(__CLASS__, 'errorHandler'));
|
|
}
|
|
|
|
public static function errorHandler($errno, $errstr, $errfile, $errline)
|
|
{
|
|
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
|
|
}
|
|
}
|
|
|
|
class cache implements ArrayAccess
|
|
{
|
|
private $container = array();
|
|
|
|
public function offsetGet($id) {}
|
|
|
|
public function offsetSet($id, $value) {}
|
|
|
|
public function offsetUnset($id) {}
|
|
|
|
public function offsetExists($id)
|
|
{
|
|
return isset($this->containers[(string) $id]);
|
|
}
|
|
}
|
|
|
|
$env = new env();
|
|
$cache = new cache();
|
|
var_dump(isset($cache[$id]));
|
|
|
|
echo "Done\n";
|
|
?>
|
|
--EXPECTF--
|
|
Fatal error: Uncaught exception 'ErrorException' with message 'Undefined variable: id' in %s:%d
|
|
Stack trace:
|
|
#0 %s(%d): env::errorHandler(8, '%s', '%s', 34, Array)
|
|
#1 {main}
|
|
thrown in %s on line %d
|