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
Fix inconsistency in true/false/null constant resolution when eval() is used
Strangely, uses of eval and 'php -a' will not treat non-FQ true/false/null as magic
keywords, while compiled php required from a file would do that.
This may confuse people learning the language, and result in code loaded with
eval() behaving differently from the same snippet in a file loaded by require.
```
Interactive shell
php > define('foo\true', 'test');
php > namespace foo { var_dump(true); }
string(4) "test"
```
This will make the same session instead properly emit `bool(true);` like it
already would if running those statements in files.
(Interactive shell internally uses the same APIs eval uses)
`zend_resolve_non_class_name` is a static C function where case_sensitive
is only true for global constants (and false for global functions).
0 commit comments