>php教程 >php手册 >PHP의 네임스페이스 네임스페이스

PHP의 네임스페이스 네임스페이스

WBOY
WBOY원래의
2016-10-22 00:00:091231검색

이름 설명:

네임스페이스(namespace), 네임스페이스는 php5.3부터 지원되는 기능입니다. 두 가지 주요 기능이 있습니다. 1. 클래스 이름이 너무 길어지는 것을 방지할 수 있습니다. 2. 여러 프레임워크에서 사용하는 경우 동일한 이름을 가진 클래스 간에 충돌이 발생하지 않습니다.

네임스페이스는 이름을 보면 알 수 있는데, 목적은 이름을 붙이는 것입니다. 그렇지 않으면 QQ Space, Inception 또는 Seventh Dimension Space라고 부르지 않겠습니까? 음, 뭔가 이상한 것이 섞여 있는 것 같군요.


샘플 코드는 다음과 같습니다.

<span style="color: #008080"> 1</span> <span style="color: #008000">//</span><span style="color: #008000">在test1.php 中有一个类 叫做Person,它放在一个叫shop的namespace里。</span>
<span style="color: #008080"> 2</span> <?<span style="color: #000000">php
</span><span style="color: #008080"> 3</span> <span style="color: #000000">    namespace shop;//这个声明要放在php文件的最上面。就算是header也要让路。
</span><span style="color: #008080"> 4</span> 
<span style="color: #008080"> 5</span>     <span style="color: #008080">header</span>('content-type:text/html;charset=utf-8'<span style="color: #000000">);
</span><span style="color: #008080"> 6</span> 
<span style="color: #008080"> 7</span>     <span style="color: #0000ff">class</span><span style="color: #000000"> Person {
</span><span style="color: #008080"> 8</span>       <span style="color: #0000ff">public</span> <span style="color: #800080">$name</span> = 'Leonard'<span style="color: #000000">;
</span><span style="color: #008080"> 9</span> <span style="color: #000000">    }
</span><span style="color: #008080">10</span> ?>
<span style="color: #008080">11</span> <span style="color: #008000">//</span><span style="color: #008000">在同级目录的test2.php中也有一个叫Person的类,它放在一个叫admin的namespace中</span>
<span style="color: #008080">12</span> <?<span style="color: #000000">php
</span><span style="color: #008080">13</span> 
<span style="color: #008080">14</span> <span style="color: #000000">    namespace admin;//上面可以有空白行。别的都不行
</span><span style="color: #008080">15</span> 
<span style="color: #008080">16</span>     <span style="color: #0000ff">include_once</span>('./test.php'<span style="color: #000000">);
</span><span style="color: #008080">17</span> 
<span style="color: #008080">18</span>     <span style="color: #0000ff">use</span> shop <span style="color: #0000ff">as</span><span style="color: #000000"> s;//这里就引用了这个shop命名空间。要使用test1.php中的类就必须写上这行。as的作用是简写命名空间的名字。
</span><span style="color: #008080">19</span> 
<span style="color: #008080">20</span>     <span style="color: #0000ff">class</span><span style="color: #000000"> Person {
</span><span style="color: #008080">21</span>       <span style="color: #0000ff">public</span> <span style="color: #800080">$name</span> = 'Sheldon'<span style="color: #000000">;
</span><span style="color: #008080">22</span> <span style="color: #000000">    }
</span><span style="color: #008080">23</span> 
<span style="color: #008080">24</span>     <span style="color: #800080">$p1</span> = <span style="color: #0000ff">new</span><span style="color: #000000"> s\Person();//上面用了as简写,s指代命名空间shop。没有用as的话就用 new shop\Person()来实例化对象。
</span><span style="color: #008080">25</span>     <span style="color: #0000ff">echo</span> <span style="color: #800080">$p1</span>->name;<span style="color: #008000">//</span><span style="color: #008000">Leonard</span>
<span style="color: #008080">26</span> 
<span style="color: #008080">27</span>     <span style="color: #800080">$p2</span> = <span style="color: #0000ff">new</span><span style="color: #000000"> Person();//不写命名空间时,就近在自己的命名空间里找Person类,找不到就报错咯。
</span><span style="color: #008080">28</span>     <span style="color: #0000ff">echo</span> <span style="color: #800080">$p2</span>->name;<span style="color: #008000">//</span><span style="color: #008000">Sheldon<br></span>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.