Bug #69557 [Nab]: Unexpected error message using "use" operator before the "namespace" keyword
[email protected] ("me at paulofreitas dot me")
| Newsgroups | php.standards |
|---|---|
| Message-ID | <[email protected]> |
Edit report at https://bugs.php.net/bug.php?id=69557&edit=1
ID: 69557
User updated by: me at paulofreitas dot me
Reported by: me at paulofreitas dot me
Summary: Unexpected error message using "use" operator before
the "namespace" keyword
Status: Not a bug
Type: Bug
Package: PHP Language Specification
Operating System: N/A
PHP Version: 5.6.8
Block user comment: N
Private report: N
New Comment:
Citing "How to Report a Bug" page...
"Don't report an error message you don't understand as a bug. There are a lot of places you can ask for help in understanding what is going on before you can claim that an error message you do not understand is a bug."
That's not the case.
"(Now, once you've understood the error message, and have a good suggestion for a way to make the error message more clear, you might consider reporting it as a feature request.)"
Neither that.
It's clearly an unexpected and undocumented behavior per namespaces docs:
"Namespaces are declared using the namespace keyword. A file containing a namespace must declare the namespace at the top of the file before any other code - with one exception: the declare keyword."
(from http://php.net/manual/en/language.namespaces.definition.php)
Previous Comments:
------------------------------------------------------------------------
[2015-05-01 06:09:44] [email protected]
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php
------------------------------------------------------------------------
[2015-05-01 04:49:39] me at paulofreitas dot me
Description:
------------
As stated, if you try to use the "use" operator to import something before declaring the file namespace, you'll get an unexpected error message which doesn't actually explain the real issue.
Test script:
---------------
To reproduce the bug: http://3v4l.org/Qc9UO
Expected result: http://3v4l.org/XOGsn (you get the idea...)
Expected result:
----------------
Fatal error: Namespace declaration statement has to be the very first statement in the script in test.php on line 5
Actual result:
--------------
Fatal error: Class 'Foo\Bar' not found in test.php on line 7
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=69557&edit=1