Hi Stas,  

在 2012年7月25日星期三,上午2:33,Stas Malyshev 写道:

> Hi!
>  
> > from GlobalNamespace\SubSpace\ThirdSace use Class1, Class2 as Alias2, 
> > ForthSpace\Class3 as Alias3;
>  
> I'm not sure it's necessary. If you import a real lot of the classes
> from the same namespace, just import the parent namespace. And this
>  
>  

No, we can not import namespace directly for now :
<?php
namespace A {
    class B {}
}

namespace {
use A;

var_dump(new B());
}

Warning: The use statement with non-compound name 'A' has no effect in 
/Users/reeze/Opensource/php-test/php-src-master/a.php on line 7

if we wan to archive the goal of import anything. the only way is to declare 
the current namespace  
as  "the parent namespace" we want to import from, eg:

<?php
namespace Zend {
    class B {}
}

namespace *Zend* {

var_dump(new B());
}

but this is not preferred for use code declared as the library we used.
> syntax makes less clear what is the true name of Class2 and also by
> similarity to python syntax would lead people to think it does the same
> thing python one does - which it is not.
>  
>  

Sorry, I didn't make myself clear. the example I posted is not correct. It 
didn't have to alias the imported classes.
'use' statement can alias the imported class too, the proposed 'from xx use yy' 
is almost  
the same as 'use'

The correct example should be:

<?php
// if we don't want to duplicated then the follow could be
use GlobalNamespace\SubSpace\ThirdSpace\Class1;
use GlobalNamespace\SubSpace\ThirdSpace\Class2;
use GlobalNamespace\SubSpace\ThirdSpace\Class3;
// reduced to
from GlobalNamespace\SubSpace\ThirdSace use Class1, Class2, Class3 ;
?>


and if we need alias we could:
<?php
// reduce  
use GlobalNamespace\SubSpace\ThirdSpace\Class1;
use GlobalNamespace\SubSpace\ThirdSpace\Class2 as Alias2;
use GlobalNamespace\SubSpace\ThirdSpace\ForthSpace\Class3 as Alias3;
// to
from GlobalNamespace\SubSpace\ThirdSace use Class1, Class2 as Alias2, 
ForthSpace\Class3 as Alias3;
?>


Thanks stas.
>  
>  
> --  
> Stanislav Malyshev, Software Architect
> SugarCRM: http://www.sugarcrm.com/
> (408)454-6900 ext. 227
>  
>  


Reply via email to