Fatal error: Namespace declaration statement has to be the very first statement in the script in
Sometimes this issue come because of space in PHP start tag of controller facing same issue just removed whitespace in:
<?php
namespace App\Http\Controllers\Auth;
removing the space resolved my error
Make sure there is no whitespace before your php tag
// whitespace
<?php
namespace HelloWorld
?>
Remove the white space before your php tag starts
<?php
namespace HelloWorld
?>
I have also faced the problem. In the php file, I have written following code where there was some space before php start tag
<?php
namespace App\Controller;
when I remove that space, it solved.
This thread seems to be talking about the same issue - it sounds like this error is usually caused by having some data sent out of the server before the namespace statement is encountered.
- Could your web hosting be inserting some code into your page before the PHP code?
- Is there a UTF-8 Byte Order Mark at the beginning of the document?
On the other hand, it could also be a bug in ImageUploader... the main PHP file puts the namespace after the class definition, which I haven't seen in the PHP documentation, which says it should be the very first PHP code. From this page:
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.
There's no declare keyword here, so perhaps this is a bug in the source code that slips by the developer's version of PHP, because he doesn't put the namespace first:
<?php
class BulletProofException extends Exception{}
namespace BulletProof;
/**
* BulletProof ImageUploder:
...