In your example :

<?php
namespace Foo;
import Blah::Exception;
$a = new Exception;
?>

"new Exception" refer to "Blah::Exception" and will fail if such class
doesn't exists.

"import Blah::Exception" creates an alias with short name "Exception" only
for current file (it doesn't creates "Foo::Exception")

May be I didn't understood the question. :)

Thanks. Dmitry.

> -----Original Message-----
> From: Stanislav Malyshev [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, October 04, 2007 12:50 AM
> To: Greg Beaver; Dmitry Stogov
> Cc: php-dev; Benjamin Schulz
> Subject: Re: [PHP-DEV] a way to fix the import issue
> 
> 
> > <?php
> > namespace Foo;
> > import Blah::Exception;
> > $a = new Exception;
> > ?>
> > 
> > should in fact be implicitly importing Blah::Exception as 
> if it were 
> > Foo::Exception, rather than as ::Exception.  In other 
> words, I would 
> > actually expect the above code to be equivalent to:
> > 
> > <?php
> > namespace Foo;
> > import Blah::Exception as Foo::Exception;
> > $a = new Foo::Exception;
> > ?>
> 
> No, not really. It's equivalent to:
> <?
> $a = new Blah::Exception();
> ?>
> 
> There's no class named Foo::Exception and import does not create it. 
> However, I think I see what you were meaning - that new 
> Exception should 
> refer to Blah::Exception. I think it is true. Dmitry, could you look 
> into it? I.e. unqualified lookups inside namespace should also take 
> imports into account.
> 
> -- 
> Stanislav Malyshev, Zend Software Architect
> [EMAIL PROTECTED]   http://www.zend.com/
> (408)253-8829   MSN: [EMAIL PROTECTED]
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

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

Reply via email to