人人人妻人人人妻人人人,99精品国产综合久久久久五月天 ,欧美白人最猛性XXXXX,日韩AV无码免费播放

News新聞

業(yè)界新聞動態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁      樂道系統(tǒng)FAQ      PHP命令空間namespace及use的用法小結(jié)

PHP命令空間namespace及use的用法小結(jié)

標簽: 發(fā)布日期:2017-11-27 00:00:00 336

命名空間一個最明確的目的就是解決重名問題,PHP中不允許兩個函數(shù)或者類出現(xiàn)相同的名字,否則會產(chǎn)生一個致命的錯誤。這種情況下只要避免命名重復就可以解決,最常見的一種做法是約定一個前綴。

使用namespace的目的:

團隊合作項目時,避免與團隊其它成員新建的類發(fā)生沖突;個人負責項目時,避免前后新建的類發(fā)生沖突;

據(jù)個人理解,用到所需要的類時,需要先require或include引入,所以會發(fā)生類重定義的錯誤的前提是:兩個相同命名的類都有被引入。目前有些php框架會自動加載(即include)所有新建的model類,所以為了避免你新建的model類和項目框架原生的核心類發(fā)生重名沖突,采用了namespace。(想了想,與團隊成員新建的類產(chǎn)生沖突應該通過溝通避免,即使事發(fā)后也應該重新調(diào)整類名即時維護,避免后期造成因為對類的理解混淆而帶來維護上的復雜度提高)

結(jié)合使用方法來進一步理解它的使用目的吧。

namespace的使用方法:

為了進行測試,我將創(chuàng)建3個文件:1.php和name.php(此文件用來執(zhí)行測試),后面將不再說明,請自行注意代碼的變化。

1.namespace后命名的定義不區(qū)分大小寫

namespace one;
namespace One;
namespace ONE;

如上寫法都可以,選擇一種作為自己的規(guī)范即可。(后面代碼我采用第一種進行測試哈)

2. 沒有定義命名空間,就理解為使用頂級命名空間。new類時,可以在類前加上反斜杠\,也可以不加。

//1.php 
class Person{
 function __construct(){
  echo 'I am one!';
 }
}
//name.php
require_once './1.php';
new Person(); //輸出 I am one!;
new \Person(); //輸出 I am one!;