亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP SPL使用方法和他的威力

2020-03-22 19:36:26
字體:
來源:轉載
供稿:網友
SPL,PHP 標準庫(Standard PHP Library) ,此從 PHP 5.0 起內置的組件和接口,并且從 PHP5.3 已逐漸的成熟。SPL 其實在所有的 PHP5 開發環境中被內置,同時無需任何設置。
似乎眾多的 PHP 開發人員基本沒有使用它,甚至聞所未聞。究其原因,可以追述到它那陽春白雪般的說明文檔,使你忽略了「它的存在」。SPL 這塊寶石猶如鐵達尼的「海洋之心」般,被沉入海底。而現在它應該被我們撈起,并將它穿戴在應有的位置 ,而這也是這篇文章所要表述的觀點。
那么,SPL 提供了什么?
SPL 對 PHP 引擎進行了擴展,例如 ArrayAccess、Countable 和 SeekableIterator 等接口,它們用于以數組形式操作對象。同時,你還可以使用 RecursiveIterator、ArrayObejcts 等其他迭代器進行數據的迭代操作。
它還內置幾個的對象例如 Exceptions、SplObserver、Spltorage 以及 splautoloadregister、splhtml' target='_blank'>classes、iteratorapply 等的幫助函數(helper functions),用于重載對應的功能。
這些工具聚合在一起就好比是把多功能的瑞士軍刀,善用它們可以從質上提升 PHP 的代碼效率。那么,我們如何發揮它的威力?
重載 autoloader
如果你是位「教科書式的程序員」,那么你保證了解如何使用 __autoload 去代替 includes/requires 操作惰性載入對應的類,對不?
但久之,你會發現你已經陷入了困境,首先是你要保證你的類文件必須在指定的文件路徑中,例如在 Zend 框架中你必須使用「_」來分割類、方法名稱(你如何解決這一問題?)。
另外的一個問題,就是當項目變得越來越復雜, __autoload 內的邏輯也會變得相應的復雜。到最后,甚至你會加入異常判斷,以及將所有的載入類的邏輯如數寫到其中。
大家都知道「雞蛋不能放到一個籃子中」,利用 SPL 可以分離 __autoload 的載入邏輯。只需要寫個你自己的 autoload 函數,然后利用 SPL 提供的函數重載它。
例如上述 Zend 框架的問題,你可以重載 Zend loader 對應的方法,如果它沒有找到對應的類,那么就使用你先前定義的函數。
復制代碼 代碼如下:
?php
class MyLoader {
public static function doAutoload($class) {
// 本模塊對應的 autoload 操作
}
}spl_autoload_register( array('MyLoader', 'doAutoload') );
?

正如你所見, spl autoload register 還能以數組的形式加入多個載入邏輯。同時,你還可以利用spl autoload unregister 移除已經不再需要的載入邏輯,這功能總會用到的。
迭代器
迭代是常見設計模式之一,普遍應用于一組數據中的統一的遍歷操作。可以毫不夸張的說,SPL 提供了所有你需要的對應數據類型的迭代器。
有個非常好的案例就是遍歷目錄。常規的做法就是使用 scandir ,然后跳過「.「 和 「..」,以及其它未滿足條件的文件。例如你需要遍歷個某個目錄抽取其中的圖片文件,就需要判斷是否是 jpg、gif 結尾。
下面的代碼就是使用 SPL 的迭代器執行上述遞歸尋找指定目錄中的圖片文件的例子:
復制代碼 代碼如下:
?php
class RecursiveFileFilterIterator extends FilterIterator {
// 滿足條件的擴展名
protected $ext = array('jpg','gif');
/**
* 提供 $path 并生成對應的目錄迭代器
*/
public function __construct($path) {
parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)));
}
/**
* 檢查文件擴展名是否滿足條件
*/
public function accept() {
$item = $this- getInnerIterator();
if ($item- isFile() &&
in_array(pathinfo($item- getFilename(), PATHINFO_EXTENSION), $this- ext)) {
return TRUE;
}
}
}
// 實例化
foreach (new RecursiveFileFilterIterator('/path/to/something') as $item) {
echo $item . PHP_EOL;
}
?

你可能會說,這不是花了更多的代碼去辦同一件事情嗎?那么,查看上面的代碼,你不是擁有了具有高度重用而且可以測試的代碼了嗎 :)PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久97| 欧美国产视频日韩| 久久久久久久久久亚洲| 中文在线资源观看视频网站免费不卡| 最新中文字幕亚洲| 精品一区二区三区四区| 国产精品久久综合av爱欲tv| 国产98色在线| 一级做a爰片久久毛片美女图片| 久久成人精品视频| 色婷婷**av毛片一区| 不卡av在线网站| 成人免费在线网址| 国产精品久久久久久av福利| 另类少妇人与禽zozz0性伦| 欧美国产日韩中文字幕在线| 日韩一区二区三区国产| 欧美亚洲国产视频小说| 亚洲欧美自拍一区| 中文字幕欧美日韩精品| 成人亚洲综合色就1024| 国产精品国产三级国产aⅴ浪潮| 久久精品视频在线播放| 国产精品久久一区| 欧美性一区二区三区| 欧美成人免费视频| 久久久久久中文字幕| 国产精品国产亚洲伊人久久| 亚洲女成人图区| 亚洲欧美日本伦理| 第一福利永久视频精品| 黑人巨大精品欧美一区免费视频| 欧美老女人性视频| 亚洲aⅴ男人的天堂在线观看| 色伦专区97中文字幕| 高清欧美性猛交xxxx| 欧美最顶级的aⅴ艳星| 久久国产精品久久国产精品| 欧美精品电影在线| 日韩成人小视频| 久久综合久久八八| 国产91精品高潮白浆喷水| 91影视免费在线观看| 日韩精品极品毛片系列视频| 一区二区三欧美| 久久99国产综合精品女同| 26uuu国产精品视频| 久久久精品2019中文字幕神马| 久久精品视频导航| 日本国产欧美一区二区三区| 成人福利网站在线观看11| 日韩中文字幕欧美| 精品国产欧美一区二区三区成人| 亚洲在线免费观看| 伊人久久综合97精品| 亚洲精品福利资源站| 亚洲精品日产aⅴ| 国产视频久久网| 亚洲成av人片在线观看香蕉| 亚洲综合色av| 亚洲国产精品推荐| 中文字幕日韩欧美在线| 国产精品va在线播放| 91po在线观看91精品国产性色| 热久久视久久精品18亚洲精品| 日本欧美精品在线| 日韩欧美在线国产| 性欧美办公室18xxxxhd| 国产精品久久久久久网站| 欧美成人免费一级人片100| 欧美精品videosex性欧美| 久久这里只有精品99| 亚洲精品电影网| 亚洲一区二区三区香蕉| 日韩毛片在线观看| 茄子视频成人在线| 91精品国产91久久久久| 久久久久久有精品国产| 久久黄色av网站| 中文字幕亚洲欧美日韩高清| 欧美成人午夜免费视在线看片| 欧美日韩亚洲精品内裤| 清纯唯美亚洲激情| 91禁国产网站| 4438全国亚洲精品在线观看视频| 亚洲韩国日本中文字幕| 国产91|九色| 国产精品三级久久久久久电影| 国产精品高清在线观看| 精品在线小视频| 日韩经典中文字幕在线观看| 成人精品视频久久久久| 日本视频久久久| 国模极品一区二区三区| 国产一区香蕉久久| 中文字幕日韩av电影| 日本欧美国产在线| 日韩在线免费av| 综合欧美国产视频二区| 欧美性生活大片免费观看网址| 国产香蕉一区二区三区在线视频| 国产精品免费视频久久久| 亚洲一级一级97网| 成人97在线观看视频| 欧洲美女7788成人免费视频| 国产欧美日韩精品丝袜高跟鞋| 91精品国产99| 91视频国产精品| 高清欧美性猛交xxxx黑人猛交| 国产欧美一区二区三区视频| 亚洲最大的网站| 亚洲aa在线观看| 国产精品视频午夜| 成人观看高清在线观看免费| 中文字幕日韩在线视频| 日韩免费视频在线观看| 精品精品国产国产自在线| 色噜噜久久综合伊人一本| 久久天天躁狠狠躁夜夜爽蜜月| 欧美小视频在线观看| xvideos国产精品| 韩剧1988免费观看全集| 黑人与娇小精品av专区| 色婷婷亚洲mv天堂mv在影片| 欧美日韩亚洲视频一区| 欧美激情视频一区二区三区不卡| 91a在线视频| 高清欧美一区二区三区| 亚洲第一页自拍| 亚洲成人av在线| 国产日韩欧美电影在线观看| 日韩在线播放视频| 91网站在线免费观看| 国产日产亚洲精品| 欧美日韩亚洲91| 韩日精品中文字幕| 91理论片午午论夜理片久久| 成人福利视频网| 国产日本欧美一区二区三区| 亚洲专区中文字幕| 日韩在线小视频| 这里只有精品丝袜| 97精品免费视频| 成人黄在线观看| 中文字幕亚洲一区二区三区五十路| 亚洲欧美一区二区三区在线| 欧美日韩国产黄| 国产午夜精品美女视频明星a级| 亚洲精品不卡在线| 亚洲精品美女在线观看播放| 国产一区二区三区网站| 欧美色视频日本版| 国产日韩欧美在线观看| 久久久久久久久久久成人| 91免费人成网站在线观看18| 国产999精品久久久影片官网| 777国产偷窥盗摄精品视频| 欧美华人在线视频| 97精品免费视频| 欧美黑人xxx| 亚洲网站在线看| 欧美乱大交做爰xxxⅹ性3| 久久久久久12| 精品欧美一区二区三区|