国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP命名空間namespace及use的簡單用法分析

2024-05-05 00:04:49
字體:
來源:轉載
供稿:網友

本文實例講述了PHP命名空間namespace及use的簡單用法。分享給大家供大家參考,具體如下:

最近一段時間在研究php框架,一直想的什么時候才能開發出自己的框架,當然這是為了提升自己的編程水平,同時能把平時學的零散的東西糅合在一塊熟練應用。但是開發一個框架根本不知道如何做起,先開發什么,雖然php的框架也不少,但是都是如何應用,沒有文檔和視頻可以學習,這是讓我特別郁悶的事情,相信不少想自己開發框架玩的小伙伴都有類似的感受,郁悶歸郁悶,自己還是動手做了,做的時候困難和想象的一樣難,從一開始就有點蒙了。

那就是命名空間的使用及use引入。看了很多網上的說法,也看了官方文檔,意思大概明白,也很好理解,命名空間還好說,給這個空間起個名字嘛,但是use具體操作起來就不行 了,怎么也搞不通。后來看一個yii學習視頻才恍然明白。

比方說建三個文件。

第一個文件 A.php,里邊有兩個類,命名空間是 a/b/c;

<?phpnamespace a/b/c;class Apply{  function get_info(){    echo 'this is A Apply';  }}class C{  function info(){    echo 'this is info';  }}

第二個文件 B.php  命名空間 a/b/d;

<?phpnamespace a/b/d;class Apply{  function get_info(){    echo 'this is B Apply';  }}

第三個文件 index.php ,用來使用上邊兩個文件的類。

比方說我們現在想實例化A.php里的類,該怎么實現呢?

首先要包含這個文件

require_once('A.php');

然后 use a/b/c;? 還是a/b/c/A?   起初我也是這么認為的。其實這是錯的,use應該是這樣的,命名空間/這個空間下你要實例化類的類名。比方說我們要實例化 A.php里的Apply類,那么 use a/b/c/Apply;  這就相當于引入這個類,接下來再  new Apply();調用里邊的方法,跟平常是一樣的。如果要實例化類C,就 use a/b/c/C;

注意:use不等于require_once或者include,use的前提是已經把文件包含進當前文件

順便提一句,在MVC模式中,類名和文件名是相同的,所以use的時候會讓不了解的人以為use后面跟的是文件名,我之前就這么以為的。其實use的還是類名。

有的人可能問了,那我不同的命名空間下,有相同的類名,在同一個文件中使用怎么辦?比方說我們上邊的index.php,把A.php和B.php都包含進來,然后new Apply();這個時候是會報錯的,解決方案就是起別名,比方說 use a/b/d/Apply as b;  此時我們new 的時候不應該寫成 new Apply();而是new b();這樣就不會發生沖突了。

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 浦东新区| 遂平县| 合水县| 两当县| 古田县| 鹤庆县| 满洲里市| 南溪县| 建德市| 巩义市| 台山市| 房产| 平顺县| 马边| 长白| 都安| 龙陵县| 上林县| 东海县| 廊坊市| 宁乡县| 巴林左旗| 双柏县| 靖边县| 平阴县| 吉隆县| 上犹县| 京山县| 修文县| 绥中县| 金门县| 淳安县| 门头沟区| 油尖旺区| 镇安县| 根河市| 永宁县| 四平市| 遵义市| 通渭县| 伊宁市|