mirror of
https://github.com/php/php-src.git
synced 2024-12-02 22:34:55 +08:00
36935e42ea
Closes GH-5312
47 lines
988 B
PHP
47 lines
988 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 ErrorException: Undefined variable $id in %s:%d
|
|
Stack trace:
|
|
#0 %s(%d): env::errorHandler(2, 'Undefined varia...', '%s', %d)
|
|
#1 {main}
|
|
thrown in %s on line %d
|