use with non-compound name *has* effect

Bug #46979 use with non-compound name *has* effect
Submitted: 2008-12-30 23:38 UTC Modified: 2009-01-14 13:58 UTC
From: ladislav at marek dot su Assigned: dmitry (profile)
Status: Closed Package: Scripting Engine problem
PHP Version: 5.3.0alpha3 OS: *
Private report: No CVE-ID: None

 [2008-12-30 23:38 UTC] ladislav at marek dot su

Description:
------------
Currently php throws bogus warning with non-compound name in use statement.

Reproduce code:
---------------
namespace My;

use Foo;

new Foo\Bar;

Expected result:
----------------
Fatal error: Class 'Foo\Bar' not found in ...

Actual result:
--------------
Warning: The use statement with non-compound name 'Foo' has no effect in ...

Fatal error: Class 'Foo\Bar' not found in ...



'use Foo' has effect, because fully qualified name isn't My\Foo\Bar but Foo\Bar.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports

 [2008-12-31 09:36 UTC] ladislav at marek dot su

Yes, but bug isn't fixed, 'use ArrayObject' is same as 'use \ArrayObject' manual is wrong. Please consider importing non-compound class or namespace names without \ prefix (remove invalid warning).

 [2009-01-14 13:58 UTC] dmitry@php.net

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.