Edit report at http://bugs.php.net/bug.php?id=54438&edit=1
ID: 54438 Updated by: fel...@php.net Reported by: michal dot brzuchalski at gmail dot com Summary: use statement overwrite aliased namespace against using multiple Status: Bogus Type: Feature/Change Request Package: Class/Object related Operating System: Linux PHP Version: 5.3.6 Block user comment: N Private report: N New Comment: There is parser error, you just need to use the right code to reproduce it. use A as Foo; use B as Foo; or use A as Foo, B as Foo; Previous Comments: ------------------------------------------------------------------------ [2011-04-02 20:11:15] michal dot brzuchalski at gmail dot com So why there's no parse error if there can be more than one class/namespace aliased ? ------------------------------------------------------------------------ [2011-04-02 19:06:09] fel...@php.net This is not a bug. It works as expected, an alias cannot be used for more than one class/namespace/... ------------------------------------------------------------------------ [2011-04-01 10:09:34] michal dot brzuchalski at gmail dot com Description: ------------ In use statement we can use "," to separate aliased namespaces but the alias only affect to the last one declared use namespace. It'll be logical to use all declared namespaces in alias and use classes/constants/closures/etc. from aliased namespace where they exists. Test script: --------------- <? namespace A; class test1 {} class test2 {} namespace B; class test1 {} use A, B as Foo; $test1 = new Foo\test1; echo get_class($test1). "\n"; $test2 = new Foo\test2; echo get_class($test2). "\n"; Expected result: ---------------- B\test1 A\test2 Actual result: -------------- B\test1 PHP Fatal error: Class 'B\test2' not found in test.php on line 13 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=54438&edit=1