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

Reply via email to