亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁/技術文章
文章詳情頁

PHP基礎之命名空間3——命名空間使用基礎

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

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

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

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

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

下面是一個使用這三種方式的實例:

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

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

Example #1 在命名空間內部訪問全局類、函數和常量

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

標簽: PHP
相關文章:
主站蜘蛛池模板: 日韩做爰在线观看免费 | 97一级毛片全部免费播放 | 精品久久网站 | 欧美人成人亚洲专区中文字幕 | 印度xxxxbbbb视频 | 免费视频观看在线www日本 | 一级全黄色毛片 | 国产精品一区二区久久 | 亚洲乱淫 | 久久免费99精品国产自在现线 | 高清一级做a爱视频免费 | 亚洲精品一区二区久久这里 | 亚洲色图在线视频 | 国产精品超清大白屁股 | 亚洲国产小视频 | 亚洲国产成人久久三区 | 1819高清欧美xx | 又黄又爽又猛午夜性色播在线播放 | 日韩亚洲精品不卡在线 | 国产一区精品 | 99re8免费视频精品全部 | 国产青青在线 | 干成人网 | 华人欧美国产在线精品 | 精子网久久国产精品 | 欧美一级毛片免费大片 | 国产在线日韩在线 | 国产精品美女www爽爽爽视频 | 国产成人午夜精品影院游乐网 | 五月天婷婷综合网 | 老人与老人免费a级毛片 | 日韩 欧美 中文 亚洲 高清 在线 | 亚洲免费高清 | 91福利国产在线观看网站 | 国产a级毛片 | 北条麻妃99精品青青久久 | 国产成a人片在线观看视频 国产成a人片在线观看视频99 | 亚洲玖玖 | 成人看的午夜免费毛片 | 又粗又大又爽 真人一级毛片 | 正规成人啪啪 |