You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parser / version gate in lib/ (language parser / profile checks) — reject hook property declarations on 8.2/8.3 profiles with a Zend-shaped Parse error (not a compile fatal)
Do not add C runtime branches
Repro
./script/docker-exec.sh -- bash -lc 'cat > /tmp/hooks_profile.php <<\"PHP\"<?phpclass T { private string $_x = \"a\"; public string $x { get => $this->_x; set => $this->_x = strtoupper($value); }}$t = new T;echo $t->x, \" \";$t->x = \"b\";echo $t->x, PHP_EOL;PHPphp /tmp/hooks_profile.php; echo EXIT_ZEND:$?php bin/vm.php /tmp/hooks_profile.php; echo EXIT_VM:$?'
Done when
Default profile: VM emits Zend-shaped parse error (non-zero); snippet does not run
PHP_COMPILER_PROFILE=8.4: same snippet still works (a B)
Compliance/test/repro guard; php-src-strict; no php-compiler-strict shortcut
Activity
PurHur commentedon Jul 24, 2026
Maintainer re-check (0ae5aba)
Repro from the issue body is not reproducible on current
master@0ae5abab2— VM already matches Zend 8.2 rejection:Parse error: unexpected token \"{\"syntax error, unexpected identifier \"X\", expecting \"=\"new T()->m()Parse error: unexpected token \"->\"public private(set)Fatal error: Multiple access type modifiers are not allowedClosing as already fixed / stale observation. Fresh PROFILE=8.3/8.4 gate gaps filed as #22792–#22795.
PurHur commentedon Jul 24, 2026
Closed: default-profile Zend rejection already matches on master@0ae5abab2 (see prior comment).