> 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.

Hi, 
        I was thinking -> too.. Had ideas of namespaces being object instances 
in their own right..

namespace foo { const ACONST = '1'; class bar {} } 

echo $foo->bar;                 // some mangled internal class name 
(foo_bar_123 or something) to make it unique
$a = new $foo->bar();                   
$ref = new ReflectionClass($foo->bar); 



Jared

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

Reply via email to