Hi, I've been following your conversations all day and think I might
have a nice idea for the namespace separator idea. Sorry to barge in
on your conversation but I think the following has value.

What about something like <- or <:: or even just <:

It makes sense to me because a namespace is akin to a parent of the
class and in a diagram I would use an arrow to point to the parent
from the child. At least there is some type of parent <- child
relation.

examples:
Namespace <:: ClassName
or
Namespace <- ClassName
or
Namespace <: ClassName

Unless I'm missing something these symbols should not conflict with
other ones. They also have more a PHP "feel".

This is the most semantically pleasing for me and it mirrors a common
convention and represents the actual relationship. In the language it
is nice when the symbols have an appearance representative of the
actual relationship.

When I see \ I think of ugly Windoze file paths. Also ::: seems awkward somehow.

Matt.

On 11/26/05, Jessie Hernandez <[EMAIL PROTECTED]> wrote:
> I personally don't like any of these, but I just thought of this one:
> "%%". Don't think it'll cause any problems at all, and look at the code:
>
> <?php
> $a = new name1%%name2;
> $b = name1::name2; // I see the difference clearly
> ?>
>
>
> What do you think? ":::" is more intuitive for me, but "%%" is an
> acceptable alternative...
>
>
> Regards,
>
> Jessie
>
>
> Greg Beaver wrote:
> > Hi all,
> >
> > I have only one caveat with the \ separator, which is that it is a
> > little bit too similar to division with /, and can result in some
> > confusing code like:
> >
> > <?php
> > namespace name1 {
> >     class name2{}
> > }
> > define('name1', 1);
> > define('name2', 2);
> >
> > $a = new name1\name2;
> > $b = name1/name2;
> > ?>
> >
> > The same issue exists with all colon based separators (that sounds bad
> > when read the wrong way...) because of the ternary operator, and :: with
> > static classes/methods.
> >
> > <?php
> > namespace name1 {
> >     class name2{}
> > }
> > define('name1', 1);
> > define('name2', 2);
> > // this may be a parse error with the current namespace patch,
> > // but need not be if we use ->
> > class name1
> > {
> >     const name2 = 1;
> > }
> >
> > $a = new name1:::name2;
> > $b = name1::name2; // do you see the difference?  I get confused
> > ?>
> >
> > What about using the T_OBJECT_OPERATOR?  This is a parse error in
> > existing versions, and also implies some separation.
> >
> > <?php
> > namespace name1 {
> >     class name2{}
> > }
> > define('name1', 1);
> > define('name2', 2);
> > // this may be a parse error with the current namespace patch,
> > // but need not be if we use ->
> > class name1
> > {
> >     const name2 = 1;
> > }
> >
> > $a = new name1->name2;
> > $b = name1::name2;
> > ?>
> >
> > I also proposed on IRC using \\ as this is similar to netware driver
> > separators:
> >
> > <?php
> > define('name1', 1);
> > define('name2', 2);
> >
> > $a = new name1\\name2;
> > $b = name1/name2;
> > ?>
> >
> > However, I know Andrei hated this :).  I very much prefer the use of ->,
> > as this has the same advantage as :: of "rhyming" with current syntax.
> >
> > Greg
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


--
-- Matt Friedman

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to