Edit report at https://bugs.php.net/bug.php?id=60305&edit=1
ID: 60305 Comment by: anon at anon dot anon Reported by: matty023 at gmail dot com Summary: myClass::unset() keyword conflict Status: Open Type: Feature/Change Request Package: Scripting Engine problem PHP Version: 5.4.0RC1 Block user comment: N Private report: N New Comment: @francois: It's not a bug. It's a feature. It's kind of accepted that all programming languages have some keywords you can't use as identifier names. The general solution is to just choose a synonym. Possible alternative verbs for "unset" include: - clear - remove - delete - dispose - drop - erase Unusually, the language limitation is actually fixable for "unset" because of its obvious function-like syntax. It's probably not a priority though. Also, at best, it would break the history of PHP syntax-coloring editors turning "unset" keyword color. Previous Comments: ------------------------------------------------------------------------ [2011-11-15 19:32:03] francois dot dambrine at isen-lille dot fr This bug also happen in php 5.3.6 (ubuntu 11.10 default version). ------------------------------------------------------------------------ [2011-11-15 02:19:37] matty023 at gmail dot com Description: ------------ While "keywords" and "language constructs" cannot be used as function names, I find myself with the need to have a function in my class named "unset", I also see that list is a very common and useful term. After the introduction of classes and namespaces it's time to look at enabling usage of these common terms in classes and namespaces. Test script: --------------- <?php namespace whatever; class unsetTest{ function unset($whatever){ } } Expected result: ---------------- Happiness Actual result: -------------- //Parse error: syntax error, unexpected 'unset' (T_UNSET), expecting identifier (T_STRING) in E:\_www\x.php on line # ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60305&edit=1