站長資訊網
        最全最豐富的資訊網站

        深入淺析php中如何聲明和引入命名空間

        本篇文章給大家介紹一下php如何聲明命名空間、訪問空間元素的三種方式,引入命名空間的方法。

        深入淺析php中如何聲明和引入命名空間

        一、命名空間

        1.1 介紹

        在一個大的項目中,可能會遇到同名的類、函數、常量,為了區分這些元素,我們可以將這些元素分別存放到不同的命名空間中。 1、命名空間就是包,用來存放項目中的類、函數、常量 2、通過namespace關鍵字來聲明命名空間

        1.2 聲明命名空間

        例:

        <?php   namespace China; // 定義命名空間   function getInfo () {     echo '我是中國人';   }   getInfo();    namespace USA; // 定義命名空間   function getInfo () {     echo '我是美國人';   }   getInfo(); ?>

        效果:

        深入淺析php中如何聲明和引入命名空間

        利用命名空間可進入某個命名空間中調用方法。 例:

        <?php   namespace China; // 定義命名空間   function getInfo () {     echo '我是中國人';   }   getInfo();    namespace USA; // 定義命名空間   function getInfo () {     echo '我是美國人';   }   getInfo();   China getInfo(); ?>

        效果:

        深入淺析php中如何聲明和引入命名空間

        1.3 多級命名空間

        命名空間的名字可以是多級的(子級命名空間) 例如:

        <?php   namespace ChinaBeijingShunyi; // 定義命名空間   function getInfo () {     echo 'ChinaBeijingShunyi';   }   getInfo(); // 非限定名稱訪問    namespace USAWashington; // 定義命名空間   function getInfo () {     echo 'USAWashington';   }   USAWashington getInfo(); // 完全限定名稱訪問 ?>

        效果:

        深入淺析php中如何聲明和引入命名空間

        1.4 訪問空間元素的三種方式

        1、非限定名稱訪問 2、完全限定名稱訪問 3、限定名稱訪問 例:

        <?php   namespace ChinaBeijingShunyi; // 定義命名空間   function getInfo () {     echo 'ChinaBeijingShunyi';   }    namespace ChinaBeijing; // 定義命名空間   function getInfo () {     echo 'ChinaBeijing';   }    getInfo();  // 非限定名稱訪問    ChinaBeijinggetInfo();  // 完全限定名稱訪問   ShunyigetInfo();  // 限定名稱訪問  ?>

        效果:

        深入淺析php中如何聲明和引入命名空間

        二、引入命名空間

        通過use引入命名空間 完全限定名稱訪問元素 引入命名空間的拼接規則

        公共空間+引入空間+(去除公共部分,公共部分只能留一級)空間元素

        例:

        <?php   namespace ChinaBeijingShunyi; // 定義命名空間   function getInfo () {     echo 'ChinaBeijingShunyi<br>';   }    namespace ChinaBeijing; // 定義命名空間   function getInfo () {     echo 'ChinaBeijing<br>';   }    use ChinaBeijingShunyi;   getInfo();    ShunyigetInfo();  ?>

        效果:

        深入淺析php中如何聲明和引入命名空間

        2.1 引入空間元素

        引入類: use 引入函數:use function 引入常量: use const 例:

        <?php   namespace ChinaBeijingShunyi; // 定義命名空間   class Student {   }   function getInfo() {     echo 'jdk';   }   const TYPE = 'CONST';   namespace USA; // 定義命名空間   // 引入類   use ChinaBeijingShunyiStudent;   $stu = new Student();   var_dump($stu);   echo '<br>';   // 引入函數   use function ChinaBeijingShunyigetInfo;   getInfo();   echo '<br>';    // 引入常量   use const ChinaBeijingShunyiTYPE;   echo TYPE; ?>

        效果:

        深入淺析php中如何聲明和引入命名空間

        2.2 給類、函數取別名

        如果引入的類和函數與當前空間的類和函數名稱相同,需要給引入的類和函數取別名。 通過as取別名 例:

        <?php   namespace ChinaBeijingShunyi; // 定義命名空間   class Student {   }       namespace USA; // 定義命名空間   class Student {    }   use ChinaBeijingShunyiStudent as ChinaStudent;   $stu=new Student;   var_dump($stu);   echo '<br>';   $stu1=new ChinaStudent;   var_dump($stu1); ?>

        效果:

        深入淺析php中如何聲明和引入命名空間

        2.3 公共空間

        如果一個頁面沒有namespace聲明空間這個頁面的元素在公共空間下 公共空間用表示 例:

        <?php   function getInfo() {     echo '李白<br>';   }   getInfo();  ?>

        效果:

        深入淺析php中如何聲明和引入命名空間

        2.4 命名空間注意事項

        1、命名空間只能存放類、函數、const常量。 2、第一個namespace前面不能有任何的代碼,空白字符,header()也不行。 3、包含文件不影響當前的命名空間。

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久精品国产99国产电影网| 欧美精品久久久久久久自慰| 亚洲国产成人乱码精品女人久久久不卡 | 国内精品51视频在线观看| 欧美午夜精品久久久久久浪潮| 日本一区二区三区精品中文字幕| 蜜臀久久99精品久久久久久小说| 久久久精品久久久久特色影视 | 国产精品香港三级国产AV| 欧美在线精品永久免费播放 | 无码日韩精品一区二区免费 | 亚洲精品欧美综合在线| 国产成人精品白浆久久69| 午夜精品久久久久久久| 日韩一区二区三区在线精品| 精品欧美一区二区在线看片| 久久精品国产亚洲5555| 亚洲欧美精品伊人久久| www.99精品| 人人妻人人澡人人爽精品日本| 欧美精品亚洲精品日韩精品| 国产在线精品福利大全| 国产精品国产高清国产专区| 亚洲国产精品欧美日韩一区二区 | 国产精品水嫩水嫩| 无码精品黑人一区二区三区| 最新国产成人精品2024| 欧美日韩精品久久久久| 国产精品性爱| 国模精品一区二区三区| 99在线观看视频免费精品9| 午夜影视日本亚洲欧洲精品一区| 亚洲AV无码精品色午夜在线观看| 国产精品特级毛片一区二区三区| 欧美成人精品高清在线播放| 精品久久久久久久久久中文字幕| 国产精品福利片免费看 | 国产精品自拍一区| 国产福利91精品一区二区| 99精品免费视品| 国产精品福利网站导航|