站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

小編帶你使用命名空間(php版)

上一篇文章中我們了解了子命名空間,知道了如何去定義子命名空間,有需要的請(qǐng)看《php命名空間之子命名空間是什么?》。這次我們向大家介紹命名空間的使用方法,有需要的可以參考參考。

首先我們來(lái)看一個(gè)例子。

file1.php 文件代碼

<?php namespace FooBarsubnamespace;   const FOO = 1; function foo() {} class foo {     static function staticmethod() {} } ?>

file2.php 文件代碼

<?php namespace FooBar; include 'file1.php';  const FOO = 2; function foo() {} class foo {     static function staticmethod() {} }  /* 非限定名稱(chēng) */ foo(); // 解析為函數(shù) FooBarfoo foo::staticmethod(); // 解析為類(lèi) FooBarfoo ,方法為 staticmethod echo FOO; // 解析為常量 FooBarFOO  /* 限定名稱(chēng) */ subnamespacefoo(); // 解析為函數(shù) FooBarsubnamespacefoo subnamespacefoo::staticmethod(); // 解析為類(lèi) FooBarsubnamespacefoo,                                   // 以及類(lèi)的方法 staticmethod echo subnamespaceFOO; // 解析為常量 FooBarsubnamespaceFOO                                    /* 完全限定名稱(chēng) */ FooBarfoo(); // 解析為函數(shù) FooBarfoo FooBarfoo::staticmethod(); // 解析為類(lèi) FooBarfoo, 以及類(lèi)的方法 staticmethod echo FooBarFOO; // 解析為常量 FooBarFOO ?>

讓我們好好看看這個(gè)例子, 在這個(gè)例子當(dāng)中,最突出的就是foo::staticmethod(),大家有沒(méi)有看出來(lái),不管是在哪一種用法中,我們都需要使用到“foo::staticmethod()”,但這是什么意思呢?我們具體來(lái)了解一下。

根據(jù)例子我們可以看到“staticmethod()”其實(shí)是一個(gè)靜態(tài)方法的名稱(chēng),而“foo::”是根據(jù)“foo()”進(jìn)行解析的。

PHP 命名空間中的類(lèi)名可以通過(guò)三種方式引用:

  • 非限定名稱(chēng),或不包含前綴的類(lèi)名稱(chēng),例如“$c=new foo();”或“foo::staticmethod();”。如果當(dāng)前命名空間是 space,foo 將被解析為 spacefoo。如果foo是全局代碼,不包含在任何命名空間中的代碼,則 foo 會(huì)被解析為foo。

    • 警告:如果未定義命名空間中的函數(shù)或常量,則非限定函數(shù)名或常量名將解析為全局函數(shù)名或常量名。

  • 限定名稱(chēng),或包含前綴的名稱(chēng),例如 $c = new espacefoo();spacefoo::staticmethod();。如果當(dāng)前的命名空間是 space,則 foo 會(huì)被解析為 spacespacefoo。如果使用 foo 的代碼是全局的,不包含在任何命名空間中的代碼,foo 會(huì)被解析spacefoo

  • 完全限定名稱(chēng),或包含了全局前綴操作符的名稱(chēng),例如, $c = new spacefoo();spacefoo::staticmethod();。在這種情況下,foo 總是被解析為代碼中的文字名(literal name)spacefoo

完全限定名稱(chēng)的函數(shù),調(diào)用類(lèi)和常量時(shí)會(huì)在編譯的時(shí)候發(fā)生解析。

非完全限定名稱(chēng)會(huì)根據(jù)導(dǎo)入規(guī)則在編譯的時(shí)候發(fā)生轉(zhuǎn)換。

在名稱(chēng)空間中,所有未根據(jù)導(dǎo)入規(guī)則轉(zhuǎn)換的限定名稱(chēng)前面都有當(dāng)前名稱(chēng)空間名稱(chēng)。

就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦。→ →php視頻教程

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
四虎国产精品永久在线网址| 亚洲日韩av无码中文| 久久久精品人妻一区二区三区| 国产偷伦精品视频| 日韩精品一区二区三区中文版| 国产精品怡红院在线观看| 人妻少妇精品久久久久久| 国产精品高清视亚洲精品| 久久99精品久久久久久久久久 | 久久国产精品亚洲一区二区| 亚洲中文久久精品无码ww16| 久久久久久青草大香综合精品| 亚洲国产成人精品女人久久久| 日韩不卡免费视频| 日韩电影在线播放| 国产精品亚洲w码日韩中文| 国产精品va在线观看手机版| 日韩精品中文乱码在线观看| 国产精品麻花传媒二三区别| 亚洲精品久久无码| 亚洲精品无码久久久久YW| 精品午夜福利无人区乱码一区| 国产精品久久成人影院| 精品久久久久久久无码| 91久久精品国产免费直播| 亚洲综合一区二区精品久久| 久久99精品久久久久久久不卡| 99ri精品国产亚洲| 2021在线观看视频精品免费| 亚洲精品高清国产麻豆专区| 亚洲国产成人99精品激情在线| 精品国产福利一区二区| 国产福利91精品一区二区| 麻豆国产精品有码在线观看| 91精品免费久久久久久久久| 亚洲国产成人精品久久| 国产福利视精品永久免费| 国产69精品久久久久APP下载| 高清精品一区二区三区一区| 国产精品无码一区二区三区毛片 | chinese精品男同志浪小辉|