rfc:namespaced_names_as_token
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
rfc:namespaced_names_as_token [2020/06/15 15:19] – nikic | rfc:namespaced_names_as_token [2020/06/15 17:05] – nikic | ||
---|---|---|---|
Line 48: | Line 48: | ||
===== Proposal ===== | ===== Proposal ===== | ||
+ | |||
+ | ==== Changes to namespaced names ==== | ||
PHP distinguishes four kinds of namespaced names: | PHP distinguishes four kinds of namespaced names: | ||
Line 83: | Line 85: | ||
<PHP> | <PHP> | ||
- | // This is interpreted as T_LIST | + | // This is interpreted as T_LIST |
List | List | ||
// All of the following are interpreted as legal namespaced names: | // All of the following are interpreted as legal namespaced names: | ||
Line 107: | Line 109: | ||
// This would have previously been interpreted as $foo = Foo\call($bar), | // This would have previously been interpreted as $foo = Foo\call($bar), | ||
// now it will result in a parser error. | // now it will result in a parser error. | ||
- | $foo = Foo | + | $foo = Foo // <- Missing semicolon |
\call($bar); | \call($bar); | ||
</ | </ | ||
+ | |||
+ | ==== Changes to reserved keywords limitations ==== | ||
In additional to the namespaced name changes, reserved keywords may now be used in a number of additional places: | In additional to the namespaced name changes, reserved keywords may now be used in a number of additional places: | ||
Line 130: | Line 134: | ||
new \List; // Ok! | new \List; // Ok! | ||
</ | </ | ||
+ | |||
+ | This also extends to function-like language constructs: | ||
+ | |||
+ | <PHP> | ||
+ | function print($arg) {} | ||
+ | |||
+ | print($arg); | ||
+ | \print($arg) // This calls the print() function defined above. | ||
+ | </ | ||
+ | |||
+ | To avoid confusion in this particular case, it would be possible to prevent defining function symbols that clash with function-like language constructs. | ||
===== Backward Incompatible Changes ===== | ===== Backward Incompatible Changes ===== |
rfc/namespaced_names_as_token.txt · Last modified: 2020/07/31 12:54 by nikic