On Mon, Mar 11, 2013 at 12:19 PM, Eric James Michael Ritz < lobbyjo...@gmail.com> wrote:
> Hello everyone, > > I have a question about the internals of PHP, but this is not about > advancing the development of the language, so I apologize if this is > on the wrong list. I am choosing to post to this list because I > believe the people here are most qualified to answer my question. > > This is what I want to know: Is there any valid situation in PHP where > the ‘parent’ keyword is not followed by the scope-resolution operator? > I am asking to help me decide on the best way to fix a bug for > php-mode[1] for GNU Emacs. Consider these three lines: > > echo $parent; > echo parent::$foo; > echo $this->parent; > > Emacs correctly highlights the first ‘parent’ as a variable name. It > also highlights ‘parent’ in the second line as a keyword, as it > should. But in the third line it treats ‘parent’ as a keyword instead > of a variable and applies the wrong syntax formatting. > > My idea to fix this problem is to only treat ‘parent’ as a keyword if > the scope-resolution operator immediately follows it. But before > doing that I want to know whether or not that is true. So is there > are valid situation where the keyword ‘parent’ does not have ‘::’ > after it? > > Thank you in advanced for any advice and help. > parent and self are not keywords, they are just special class names. Apart from that they can be freely used, e.g. you could also have a constant called "parent". The special meaning exists in (nearly) any classname context. parent::$foo is just one case. It's just as special if you do new parent() or something like that ;) So I don't think it makes sense to highlight only when followed by :: Nikita