PHP生成器簡單實例
一般你在迭代一組數(shù)據(jù)的時候,需要創(chuàng)建一個數(shù)據(jù),假設數(shù)組很大,則會消耗很大性能,甚至造成內(nèi)存不足。
//Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in E:\php\test\index.php on line 5
range(1, 100000000);
PHP5.5實現(xiàn)了生成器,每當產(chǎn)生一個數(shù)組元素則用yield關(guān)鍵詞返回,并且執(zhí)行函數(shù)暫停,當執(zhí)行函數(shù)next方法時,則會從上一次被yield的位置開始繼續(xù)執(zhí)行,如下例子,只會產(chǎn)生中間變量$i
function xrange($start, $limit, $step = 1) {
for ($i = $start; $i <= $limit; $i += $step) {
yield $i;
}
}
foreach (xrange(1, 9, 1) as $number) {
echo "$number ";
}
相關(guān)文章
基于Swoole實現(xiàn)PHP與websocket聊天室
本文利用Swoole來實現(xiàn)PHP+websocket的聊天室,過程介紹的很詳細,對聊天室的開發(fā)很有幫助,有需要的可以參考學習。2016-08-08
CentOS 安裝 PHP5.5+Redis+XDebug+Nginx+MySQL全紀錄
這篇文章主要介紹了在CentOS系統(tǒng)環(huán)境下安裝 PHP5.5+Redis+XDebug+Nginx+MySQL開發(fā)環(huán)境的全過程,非常的細致詳盡,推薦給有需要的小伙伴們參考下吧。2015-03-03
Yii框架學習筆記之session與cookie簡單操作示例
這篇文章主要介紹了Yii框架學習筆記之session與cookie簡單操作,結(jié)合實例形式分析了Yii框架session與cookie的定義、設置、讀寫、刪除等簡單操作技巧,需要的朋友可以參考下2019-04-04
Laravel + Elasticsearch 實現(xiàn)中文搜索的方法
這篇文章主要介紹了Laravel + Elasticsearch 實現(xiàn)中文搜索的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02
TP5使用RabbitMQ實現(xiàn)消息隊列的項目實踐
本文主要介紹了TP5使用RabbitMQ實現(xiàn)消息隊列的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06

