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

Reply via email to