php yield
參考資料:https://www.cnblogs.com/zuochuang/p/8176868.html
yield即迭代器,我的理解就是當你需要進行一些迴圈性質的非常吃記憶體的操作時,可以使用它。
比如讀取一個非常大的檔案,先要一次性把所有內容放進記憶體中。一般我們的操作是這樣的。
$handle = fopen("/Users/artist/Downloads/11121487.txt", 'rb');
while (feof($handle)===false) {
$value = fgets($handle);
//一系列操作
}
fclose($handle);
當檔案過大你可以加上一句ini_set('memory_limit', '-1');
代表記憶體使用量不受限制,但是萬一檔案很大,伺服器可能就當機了。當使用迭代器yield就完美解決這一問題。
function readTxt()
{
$handle = fopen("/Users/artist/Downloads/11121487.txt", 'rb');
while (feof($handle)===false) {
yield fgets($handle);
}
fclose($handle);
}
foreach (readTxt() as $key => $value) {
//一系列操作
}
至於yield原理什麼的,歡迎去https://www.cnblogs.com/zuochuang/p/8176868.html檢視。
相關文章
- php-yield生成器PHP
- PHP yield 高階用法——網路PHP
- 在 PHP 中使用 Promise + co/yield 協程PHPPromise
- PHP yield from 生成器用法探究 (二)PHP
- PHP中static與yield關鍵字的思考PHP
- PHP yield 協程 生成器用法探究 (一)PHP
- php生成器函式與yield關鍵字PHP函式
- PHP效能優化:生成器 yield的初體驗PHP優化
- [Javascript] yield*JavaScript
- 簡單瞭解一下php的迭代生成器yieldPHP
- yield next和yield* next的區別
- Enumerator yielder.yield 與 Proc.yield 區別
- php5.5新增的yield關鍵字功能與相關使用技巧PHP
- 用PHP的生成器yield處理大量資料,確實很快!PHP
- yield全面總結
- python之yieldPython
- 深入理解yield
- Python yield 用法Python
- python yield和yield from用法總結 木槿惜年2013Python
- 【-Flutter/Dart 語法補遺-】 sync* 和 async* 、yield 和yield* 、async 和 awaitFlutterDartAI
- Python yield與實現Python
- Python Yield Generator 詳解Python
- Python yield 使用淺析Python
- yield偽併發練習
- java yield()和sleep()的區別Java
- python 關鍵字yield解析Python
- 【轉】Python yield 使用淺析Python
- python:理解關鍵字—yieldPython
- C#中yield return用法分析C#
- Python中yield的解釋Python
- yield實現非同步 demo_code非同步
- 深入理解python中的yieldPython
- Thread 的sleep、wait、yield、interruptthreadAI
- Python基礎 - yield 用法詳解Python
- Implementing a generator/yield in a Python C extensionPython
- 請教sleep()與yield()的區別
- Python關鍵字yield詳解Python
- Python 關鍵字 yield 詳解Python