Bug #69557 [Nab]: Unexpected error message using "use" operator before the "namespace" keyword

From: Date: Fri, 01 May 2015 06:33:07 +0000
Subject: Bug #69557 [Nab]: Unexpected error message using "use" operator before the "namespace" keyword
References: 1  Groups: php.standards 
Request: Send a blank email to standards-+get-755@lists.php.net to get a copy of this message
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] stas@php.net 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

« previous php.standards (#755) next »