ID: 28261 Updated by: [EMAIL PROTECTED] Reported By: Philippe dot Jausions at 11abacus dot com -Status: Closed +Status: Open Bug Type: Class/Object related Operating System: * PHP Version: * New Comment:
as new reserved words are introduced, they tend to clash with existing class's method names. import and namespace are particularly nasty examples of methods that are likely to clash, although I have also run into problems with "list" which is a very nice method name for many tasks. The patches linked to in this comment provides a simple and effective means of allowing reserved words in method names. Not only is it possible, but it is quite elegant :). It also fixes, as a side effect, a bug in the parsing of this code: <?php class A { var $list; } $a = new A; $a->list = 1; $a-> list = 2; // parse error, unexpected T_LIST ?> whitespace between T_OBJECT_OPERATOR and the variable name changes the token returned from T_STRING to any valid token. Patch for PHP 5: http://pear.php.net/~greg/smarter_lexer.patch.txt Patch for PHP 6: http://pear.php.net/~greg/php6_smarter_lexer.patch.txt Previous Comments: ------------------------------------------------------------------------ [2004-05-04 18:18:05] [EMAIL PROTECTED] That's simply impossible. ------------------------------------------------------------------------ [2004-05-03 17:36:00] Philippe dot Jausions at 11abacus dot com Description: ------------ Suggestion: Wouldn't it be possible to lift the reserved keyword restriction for method names? It seems to me that there shouldn't be any namespace conflict with the core PHP language. Reproduce code: --------------- <?php class a { function eval() { // Do something... } } ?> Actual result: -------------- Parse error: parse error, unexpected T_EVAL, expecting T_STRING ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=28261&edit=1