久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP新特性詳解之命名空間、性狀與生成器

這篇文章主要給大家介紹了關(guān)于PHP新特性之命名空間、性狀與生成器的相關(guān)資料,主要涉及到php中trait(性狀)與generator(生成器) 方面的內(nèi)容,對(duì)于php中trait(性狀)與generator(生成器) 感興趣的

本文主要跟大家介紹了關(guān)于PHP新特性之命名空間、性狀與生成器的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面來(lái)一起看看詳細(xì)的介紹:

1.命名空間

命名空間是什么?

     1).命名空間在PHP 5.3中被引入,類似于文件夾的功能。例如Symfony框架中的Request和Response,位于Symfony的命名空間下。

     2).命名空間始終應(yīng)該在<?php標(biāo)簽的下面一行。

     3).PHP文件的命名空間和操作系統(tǒng)的物理文件系統(tǒng)不同,這是一個(gè)虛擬的概念,沒(méi)有必要和文件系統(tǒng)的目錄結(jié)構(gòu)完全對(duì)應(yīng)。雖然如此,絕大多數(shù)PHP組件為了兼容廣泛使用的PSR4自動(dòng)加載標(biāo)準(zhǔn),會(huì)把子命名空間放到文件系統(tǒng)的子目錄中去。

     4).命名空間只是PHP語(yǔ)言的一種記號(hào),PHP解釋器會(huì)將這種記號(hào)作為前綴添加到類、接口、函數(shù)和常量的名稱前面。

為什么需要命名空間?

     1).命名空間使得程序可以像沙盒一樣運(yùn)行,可以和其他開(kāi)發(fā)者編寫的代碼一起使用。確保了自己的代碼和項(xiàng)目可以和項(xiàng)目的第三方依賴一起使用。

聲明命名空間

     1).頂層命名空間經(jīng)常用于設(shè)定頂層廠商名。2).廠商的命名空間必須具有全局唯一性,子命名空間就沒(méi)有那么重要,但有助于組織項(xiàng)目的代碼。

導(dǎo)入和別名

     1).從PHP5.3開(kāi)始可以導(dǎo)入PHP類、接口和其他命名空間,并為其創(chuàng)建別名。從PHP5.6開(kāi)始可以導(dǎo)入PHP函數(shù)和常量,并為其創(chuàng)建別名。

     2).使用use關(guān)鍵字導(dǎo)入代碼時(shí)無(wú)須在開(kāi)頭加上符號(hào),因?yàn)镻HP假定導(dǎo)入的是完全限定命名空間。use關(guān)鍵字必須出現(xiàn)在全局作用域中即不能出現(xiàn)在類或者函數(shù)中,因?yàn)檫@個(gè)關(guān)鍵字是在編譯的時(shí)候使用的,不過(guò),use關(guān)鍵字可以在命名空間聲明語(yǔ)句后使用,導(dǎo)入其他命名空間的代碼。

從PHP5.6開(kāi)始我們可以導(dǎo)入函數(shù)和常量。

<?php
use func Namespace\functionName;

functionName();

也可以導(dǎo)入常量,

use constant Namespace\CONS_NAME;
echo CONS_NAME;

函數(shù)和常量的別名與類名的創(chuàng)建方式一樣。

最佳實(shí)踐

      1).PHP允許在一個(gè)PHP文件中定義多個(gè)命名空間。但是這么做容易讓人困惑,違背了一個(gè)文件一個(gè)類的良好實(shí)踐。2).在一個(gè)命名空間中引用全局的命名空間的代碼時(shí),需要加上前綴,告訴PHP需要在全局中查找該類,例如PHP原生的異常類。

自動(dòng)加載

      1).命名空間為PHP-FIG制定的PSR4自動(dòng)加載器奠定了堅(jiān)實(shí)的基礎(chǔ)。

2.使用接口

      1).就像我可以選擇開(kāi)不一樣的車。因?yàn)樗麄兌加蟹较虮P、油門和剎車,并且燃料都是汽油。

3.性狀

      1).形狀是類的部分實(shí)現(xiàn)(常量、屬性和方法),可以混入一個(gè)或者多個(gè)現(xiàn)有的PHP類中,性狀有兩個(gè)作用,表明類可以做什么(類似接口),提供模塊化實(shí)踐(類似類)。

      2).性狀使得兩個(gè)無(wú)關(guān)的類可以使用相同屬性和方法。

      3).PHP解釋器會(huì)把性狀復(fù)制粘貼到類的定義體中。

4.創(chuàng)建生成器

1)在普通函數(shù)中一次或者多次使用yield關(guān)鍵字,不返回值,只生成值,這個(gè)函數(shù)就是一個(gè)生成器。例如:

<?php
function myGenerator() {
 yield 'value1';
 yield 'value2';
}

調(diào)用生成器函數(shù)的時(shí)候,PHP會(huì)返回一個(gè)屬于Generator類的對(duì)象,這個(gè)對(duì)象可以使用foreach()函數(shù)迭代,每次迭代,PHP會(huì)要求這個(gè)對(duì)象的實(shí)例計(jì)算并提供下一個(gè)要迭代的值,生成器的優(yōu)雅之處就是在每產(chǎn)出一個(gè)值之后,生成器內(nèi)部狀態(tài)會(huì)一直停頓和恢復(fù)之間切換,直到抵達(dá)定義體的末尾或者遇到空的return;語(yǔ)句為止,例如:

<?php
foreach (myGenerator() as $yieldedValue) {
 echo $yieldedValue, PHP_EOL;
}

以上例子會(huì)輸出

value1
value2

2).生成器是如何節(jié)約內(nèi)存的?生成一個(gè)范圍內(nèi)的數(shù)值(錯(cuò)誤方式)

function makeRange($length) {
 $dataset = [];
 for ($i=0; $i < $length; $i++) {
 $dataset[] = $i;
 }
 return $dataset;
}

$customRange = makeRange(1000000);
foreach ($customeRange as $i) {
 echo $i, PHP_EOL;
}
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要介紹了PHP有序表查找之插值查找算法,簡(jiǎn)單分析了插值查找算法的概念、原理并結(jié)合實(shí)例形式分析了php實(shí)現(xiàn)針對(duì)有序表插值查找的相關(guān)操作技巧,需要的朋友可以參考下
下面小編就為大家分享一篇ThinkPHP整合datatables實(shí)現(xiàn)服務(wù)端分頁(yè)的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
下面小編就為大家分享一篇PHP實(shí)現(xiàn)APP微信支付的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
這篇文章主要介紹了PHP實(shí)現(xiàn)的多維數(shù)組排序算法,結(jié)合實(shí)例形式對(duì)比分析了php針對(duì)多維數(shù)組及帶有鍵名的多維數(shù)組進(jìn)行排序相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
這篇文章主要為大家詳細(xì)介紹了php結(jié)合ajaxuploadfile實(shí)現(xiàn)無(wú)刷新文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本篇文章給大家詳細(xì)介紹了PHP開(kāi)發(fā)接口使用RSA進(jìn)行加密解密方法,對(duì)此有興趣的朋友可以學(xué)習(xí)下。
主站蜘蛛池模板: 欧美日韩一 | 中文字幕99| 精品一区二区三区四区五区 | 日韩在线免费 | 一区二区国产在线观看 | 中文字幕av一区 | 在线观看中文字幕视频 | 黄色大片免费网站 | 99久久99热这里只有精品 | 蜜桃毛片| 亚洲91精品 | 午夜视频网 | 一区二区亚洲 | 美女天天操| 亚洲成人自拍 | 精品国产鲁一鲁一区二区张丽 | 亚洲国产免费 | 国产精品1区2区3区 一区中文字幕 | av网站免费观看 | 精品国产一区二区三区久久久蜜月 | 久久伊人精品一区二区三区 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 精品久久久久久亚洲精品 | 日韩成人在线一区 | 国产成人啪免费观看软件 | 免费观看av网站 | 特黄级国产片 | 欧美性影院 | 国产精品视频一区二区三区不卡 | av在线播放一区二区 | 亚洲精品久久久蜜桃 | 国产婷婷色综合av蜜臀av | 国产精品国产三级国产aⅴ原创 | 中文字幕一二三区 | 97精品视频在线 | 精品欧美一区二区三区免费观看 | 久久国产精品无码网站 | 久久久久免费精品国产小说色大师 | 成人免费观看男女羞羞视频 | 国产乱xxav | 99re66在线观看精品热 |