data-id="1190000004892254">
Namespace
Declaration of namespace
The namespace is declared at the top of the PHP file, on the first line after the
The namespace declaration statement begins with It starts with namespace, followed by a space, then the name of the namespace, and finally ends with;;
The manufacturer namespace, namely "Oreilly" declared below, is the most important namespace; it must be globally unique.
<code><?php namespace Oreilly;</code>
Subnamespace
<code><?php namespace Oreilly\ModernPHP;</code>
Ps: All classes, interfaces, and functions under the same namespace do not need to be declared in the same PHP file;
So, we can write the same name in different files Multiple classes of spaces.
import and alias
Before namespace was introduced in PHP, developers used Zend-style class names to solve naming conflicts;
<code># Zend_Cloud_DocumentService_Adapter_WindowsAzure_Query => Zend/Cloud/DocumentService/Adapter/WindowsAzure/Query.php</p> <p>But as you can see, it’s too long and can’t be tolerated! ! ! <br>namespace provides import and alias to solve this problem. <br>import, alias supports class, interface and namespace import in version 5.3. 5.6 starts to support function and constant import. </p> <pre class="brush:php;toolbar:false"><code># namespace without alias <?php $response = new \Symfony\Component\HttpFoundation\Response('Oops',400); $response->send(); $response2 = new \Symfony\Component\HttpFoundation\Response('Success',200);</code>
<code># namespace with Default alias use Symfony\Component\HttpFoundation\Response; $response = new Response('Oops',400); $response->send();</code>
<code># namespace with custom alias use Symfony\Component\HttpFoundation\Response as Res; $response = new Res('Oops',400); $response->send();</code>
Note:
Same as the namespace declaration, use the use keyword at the top of the PHP file, and after the
No need to add a symbol at the beginning, because PHP import is complete Qualification;
use must appear in the global scope, because use is used at compile time.
PHP5.6 and later can import functions and constants;
<code><?php use func Namespace\functionName; functionName();</code>
Import constants:
<code><?php use constant Namespace\CONST_NAME; echo CONST_NAME; </code>
Practical tips
Multiple imports
If you want to import multiple classes, interfaces, functions or constants in a PHP file, you need Use multiple use statements;
Not recommended:
<code><?php use Symfony\Component\HttpFoundation\Request, Symfony\Component\HttpFoundation\Response, Symfony\Component\HttpFoundation\Cookie;</code>
Recommended:
<code><?php use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Cookie;</code>
PHP allows one file to define multiple namespaces [Strongly not recommended]
<code><?php namespace Foo { //... } namespace Bar { //... }</code>
Global namespace
<code><?php namespace My\App; class Foo { public function doSomething() { $ex = new \Exception(); } }</code>
NOTE: At this time, in the Exception class Adding a prefix before the name tells PHP to search for Exception globally. By default, it will search in the current namespace;
The above has introduced the Modern-php book excerpt (1) namespace, including espace and modern aspects. I hope it will be helpful to friends who are interested in PHP tutorials.