上篇文章介紹了《PHP高階語法-什麼是trait?我們如何運用?他有什麼特質? 》,本文繼續介紹PHP中什麼是命名空間?如何使用命名空間?
命名空間:
在一個檔案中如果出現了Person類,能不能再定義Person類別。
命名空間就是資料夾。
在不同的命名空間下方就可以有相同的類別名稱
namespace:命名空間
use :使用
首先我們新建一個文件,我們在文件中已經定義了一個person類別了,那我們是否還能在見一個person類別?我們以程式碼為例進行調試,程式碼如下:
<?php class person { } class person { } ?>
結果如下:
##我們根據結果顯示,程式碼報錯,不能重複定義person類,這是顯而易見的錯誤,我們在同一個文件中是不允許有兩個相同的文件的,但是我們如果想有相同的類名,我們可以引用命名空間的概念。 下面我們開始使用命名空間,我們就剛剛書寫的程式碼來說,我們將第一個person寫在一個命名空間下,我將第二個person寫在另一個命名空間下,這個時候我們就可以同時定義兩個person類別了,命名空間的寫法如下程式碼所示:除此之外,我們需要為命名空間取個名字,因此我們剛剛寫的程式碼都是在我們剛剛定義的命名空間在裡面,執行此程式碼依舊會報錯,因此我們需要給第二個person類別在定義一個命名空間,緊接著我們分別在第一個類別和第二個類別中定義一個方法(function),此時我們定義了兩個類,名字相同,但不是在同一個命名空間下,具體程式碼如下:<?php namespace love; class Person { function pome() { echo '我明白你会来,所以我等<br />'; } } namespace like; class Person { function pome() { echo '不须耳鬓常厮伴,一笑低头意已倾<br />'; } } ?>
結果如下:
結果顯示是正確的;沒有報錯;
我們想要輸出我們剛剛所寫的程式碼內容,我們需要新建一個person對象,不然我們不知道是輸出那個person類,程式碼如下:$ming = new Person(); $ming ->pome();
結果如下:
#注意:我們在建立物件的時候是在那個命名的空間下;如果我們想要輸出第一個的命名空間裡面的內容,我們需要這樣寫:$niu = new \love\Person(); $niu->pome();
結果如下:
#1、第一個命名空間的命名:前面不能有任何的程式碼2、根空間、子空間根空間
你的hello空間其實就是
\hello .
你的world空間其實就是
\world
#你在world空間下
hello\Dog ===> world\hello\Dog
3、use使用,as使用
use \hello\test\Dog as SmallDog; use \world\Dog as BigDog;推薦學習:
以上是PHP中什麼是命名空間?如何使用命名空間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!