中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中yield怎么用

發布時間:2021-05-28 09:58:45 來源:億速云 閱讀:330 作者:小新 欄目:編程語言

小編給大家分享一下php中yield怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

yield 解決的問題

解決運行內存的瓶頸,php程序中的變量存儲在內存中,之前有遇到過讀取Excel文件時候,會出現內存不足,出現:

Fatal Error: Allowed memory size of xxxxxx bytes

所以會設置php 最大運行內存的設置: ini_set('memory_limit', '200M')

但是當我們讀取5g 這么大的文件的時候,我們運行內存可能就吃不消了,所以會選擇yield

初識Yield

運行:

<?php
function createRange($number){
    $data = [];
    for($i=0;$i<$number;$i++){
        $data[] = time();
    }
    return $data;
}
$data =createRange(10);
foreach($data as $value){
    sleep(1);//這里停頓1秒,我們后續有用
    echo $value.PHP_EOL;
}

php中yield怎么用

時間是一樣的。如果采用yield:

<?php

function createRange($number){
    for($i=0;$i<$number;$i++){
        yield time();
    }
}
$data =createRange(10);
foreach($data as $value){
    sleep(1);//這里停頓1秒,我們后續有用
    echo $value.PHP_EOL;
}

php中yield怎么用

時間則間隔一秒鐘,所以通過yield 的例子知道,不是像第一個例子中把for 循環的內容儲存在內存中,而是一個一個消耗。

讀取文件的例子

創建一個txt 文件寫入:

第1行
第2行
第3行
第4行
第5行
第6行
第7行
第8行
<?php
function readTxt()
{
    # code...
    $handle = fopen("./test.txt", 'rb');

    while (feof($handle)===false) {
        # code...
        yield fgets($handle);
    }

    fclose($handle);
}

foreach (readTxt() as $key => $value) {
    # code...
    sleep(1);
    echo $value;
}

用php 讀取文件,則是一行一行的讀取

php中yield怎么用

php是什么語言

php,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,現在被很多的網站編程人員廣泛的運用。

以上是“php中yield怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潼关县| 兰州市| 公主岭市| 专栏| 桂阳县| 晋宁县| 沙湾县| 曲松县| 彰化市| 喀喇沁旗| 南京市| 临夏市| 镇巴县| 上饶市| 抚松县| 黄陵县| 济宁市| 报价| 杂多县| 靖西县| 武汉市| 安阳市| 乐安县| 呼伦贝尔市| 林甸县| 青浦区| 桑日县| 灌云县| 平和县| 师宗县| 宁陕县| 昌吉市| 盱眙县| 铜山县| 西丰县| 新密市| 泌阳县| 衡阳县| 固阳县| 维西| 阿图什市|