亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

PHP基礎(chǔ)之命名空間3——命名空間使用基礎(chǔ)

瀏覽:48日期:2022-09-15 08:27:55

在討論如何使用命名空間之前,必須了解 PHP 是如何知道要使用哪一個(gè)命名空間中的元素的。可以將 PHP 命名空間與文件系統(tǒng)作一個(gè)簡單的類比。在文件系統(tǒng)中訪問一個(gè)文件有三種方式:

相對(duì)文件名形式如foo.txt。它會(huì)被解析為?currentdirectory/foo.txt,其中 currentdirectory 表示當(dāng)前目錄。因此如果當(dāng)前目錄是?/home/foo,則該文件名被解析為/home/foo/foo.txt。相對(duì)路徑名形式如subdirectory/foo.txt。它會(huì)被解析為?currentdirectory/subdirectory/foo.txt。絕對(duì)路徑名形式如/main/foo.txt。它會(huì)被解析為/main/foo.txt。

PHP 命名空間中的元素使用同樣的原理。例如,類名可以通過三種方式引用:

非限定名稱,或不包含前綴的類名稱,例如?$a=new foo();?或?foo::staticmethod();。如果當(dāng)前命名空間是?currentnamespace,foo 將被解析為currentnamespacefoo。如果使用 foo 的代碼是全局的,不包含在任何命名空間中的代碼,則 foo 會(huì)被解析為foo。?警告:如果命名空間中的函數(shù)或常量未定義,則該非限定的函數(shù)名稱或常量名稱會(huì)被解析為全局函數(shù)名稱或常量名稱。限定名稱,或包含前綴的名稱,例如?$a = new subnamespacefoo();?或?subnamespacefoo::staticmethod();。如果當(dāng)前的命名空間是?currentnamespace,則 foo 會(huì)被解析為?currentnamespacesubnamespacefoo。如果使用 foo 的代碼是全局的,不包含在任何命名空間中的代碼,foo 會(huì)被解析為subnamespacefoo。完全限定名稱,或包含了全局前綴操作符的名稱,例如,?$a = new currentnamespacefoo();?或?currentnamespacefoo::staticmethod();。在這種情況下,foo 總是被解析為代碼中的文字名(literal name)currentnamespacefoo。

下面是一個(gè)使用這三種方式的實(shí)例:

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() {} } /* 非限定名稱 */ foo(); // 解析為 FooBarfoo resolves to function FooBarfoo foo::staticmethod(); // 解析為類 FooBarfoo的靜態(tài)方法staticmethod。 echo FOO; // resolves to constant FooBarFOO /* 限定名稱 */ subnamespacefoo(); // 解析為函數(shù) FooBarsubnamespacefoo subnamespacefoo::staticmethod(); // 解析為類 FooBarsubnamespacefoo,以及類的方法 staticmethod echo subnamespaceFOO; // 解析為常量 FooBarsubnamespaceFOO /* 完全限定名稱 */ FooBarfoo(); // 解析為函數(shù) FooBarfoo FooBarfoo::staticmethod(); // 解析為類 FooBarfoo, 以及類的方法 staticmethod echo FooBarFOO; // 解析為常量 FooBarFOO?>

注意訪問任意全局類、函數(shù)或常量,都可以使用完全限定名稱,例如?strlen()?或?Exception?或?INI_ALL。

Example #1 在命名空間內(nèi)部訪問全局類、函數(shù)和常量

<?php namespace Foo; function strlen() {} const INI_ALL = 3; class Exception {} $a = strlen(’hi’); // 調(diào)用全局函數(shù)strlen $b = INI_ALL; // 訪問全局常量 INI_ALL $c = new Exception(’error’); // 實(shí)例化全局類 Exception?>

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 成人午夜在线播放 | 久久久香蕉 | 一本色道久久88加勒比—综合 | 99在线精品视频 | 日本精品一区二区三区在线 | 欧美最猛性xxxxx亚洲精品 | 清纯偷拍精品视频在线观看 | 色网址在线 | 毛片在线视频 | 久久久久久久久久久观看 | 欧美巨大精品欧美一区二区 | 成年人在线观看视频网站 | 日韩欧美视频一区 | 一级特黄aa大片欧美网站 | 99精品视频在线观看re | 欧美激情久久久久久久大片 | 精品午夜寂寞黄网站在线 | 一男一女搞黄 | 国产精品无打码在线播放9久 | 国产高清在线看免费视频观 | 欧美成 人h版在线观看 | 国产成人亚洲综合91精品555 | 午夜宅男宅女看在线观看 | 久久曰视频 | 玖草在线资源 | 香港三级日本三级妇人三级 | 欧美区一区二区三 | 99久久伊人一区二区yy5o99 | 香蕉香蕉国产片一级一级毛片 | 亚洲天堂最新网址 | 亚洲激情视频网 | 亚洲精美视频 | 天天看夜夜操 | 日韩成人免费在线视频 | 欧美亚洲国产精品久久久久 | 久久精品久久精品 | 久久久成人啪啪免费网站 | 亚洲综合国产精品 | 在线亚州 | 欧美不卡视频 | 五月色婷婷综合开心网4438 |