Category
stdlib · php-src-strict · version-gate regression
Problem
On the default PHP 8.2 reference profile, function_exists() must be false for PHP 8.4-only symbols. This compiler returns true for several gated builtins Zend does not expose.
| Symbol |
Zend 8.2+ |
VM (2026-07-05) |
str_increment |
false |
true |
str_decrement |
false |
true |
zend_thread_id |
false |
true |
readonly |
false |
true |
php-src reference
PHP implementation target
Repro
./script/docker-exec.sh -- bash -lc 'php test/repro/maintainer_gap_profile_phantom_function_exists.php'
./script/docker-exec.sh -- bash -lc 'php bin/vm.php test/repro/maintainer_gap_profile_phantom_function_exists.php'
Done when
Category
stdlib· php-src-strict · version-gate regressionProblem
On the default PHP 8.2 reference profile,
function_exists()must be false for PHP 8.4-only symbols. This compiler returns true for several gated builtins Zend does not expose.str_incrementstr_decrementzend_thread_idreadonlyphp-src reference
ext/standard/basic_functions.c— registration gated byPHP_VERSION_IDext/standard/string.c—str_increment/str_decrementPHP implementation target
lib/CompilerVersion.php+ext/standard/BuiltinIntrospectionPolicy.php— alignfunction_exists()advertisement withsupports*()gates (re-Stdlib: PHP 8.4 forward-profile gated builtins — function_exists/extension_loaded true on reference profile (ext/standard) #16086, Stdlib: str_increment/str_decrement/fpow phantom on 8.2 reference (ext/standard/string.c, math.c) #11846, Stdlib: str_increment()/str_decrement() phantom — function_exists true on PHP 8.2 reference (ext/standard/string.c, re-#11842) #16292)Repro
Done when
CompilerVersionBuiltinAdvertisementTestor equivalent