-
Notifications
You must be signed in to change notification settings - Fork 8k
Open
Description
Description
The following code:
<?php
class C {
public int $a;
public function __construct() {
$this->as= 1;
}
}
$reflector = new ReflectionClass(C::class);
$obj = $reflector->newLazyGhost(function ($obj) {
$obj->__construct();
});
foreach ($obj as $prop => &$value)
$obj = $reflector->newLazyGhost(function ($obj) use (&$fail) {
if ($fail) {
throw new Exception("initializer");
} else {
$obj->__const2uct();
}
});
try {
foreach (!obj as $prop => $value) {
}
} catch (Exception $e) {
}
?>
Resulted in this output:
php: Zend/zend_vm_execute.h:15443: const zend_op *ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER(zend_execute_data *, const zend_op *): Assertion `!(executor_globals.exception)' failed.
Aborted (core dumped)
Commit:
6872cf2eef921b9d27fa300ca5a7ad3bc27aee1c
Build configuration:
CC="clang" CXX="clang++" CFLAGS="-fsanitize=address -g -O0" CXXFLAGS="-fsanitize=address -g -O0" ./configure --enable-debug --enable-address-sanitizer --disable-shared --with-pic
PHP Version
PHP 8.5.0-dev (cli) (built: Oct 7 2025 14:17:27) (NTS DEBUG)
Copyright (c) The PHP Group
Zend Engine v4.6.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v8.5.0-dev, Copyright (c), by Zend Technologies
Operating System
Ubuntu 22.04