1분 안에 PHP에서 Yield를 사용하는 방법 알아보기(공유)

慕斯
풀어 주다: 2023-04-10 09:12:01
앞으로
7936명이 탐색했습니다.

아직도 대부분의 사람들이 PHP에서 Yield를 어떻게 사용하는지 모르거나 심지어 Yield가 무엇인지조차 모른다고 생각합니다. . Php에서 발생한 문제를 해결하려면.

yield가 문제를 해결합니다

실행 중인 메모리의 병목 현상을 해결합니다. PHP 프로그램의 변수가 메모리에 저장됩니다. Excel 파일을 읽을 때 메모리가 부족하여 다음이 나타납니다.

Fatal Error: Allowed memory size of xxxxxx bytes
로그인 후 복사

그래서 PHP 최대값 런닝 메모리 설정 : ini_set('memory_limit', '200M')

하지만 5g 정도의 대용량 파일을 읽으면 런닝 메모리가 부담될 수 있으니 Yield를 선택하겠습니다

Yield를 처음 접한 사람

런 :

<?phpfunction 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;}
로그인 후 복사

1분 안에 PHP에서 Yield를 사용하는 방법 알아보기(공유)

시간은 똑같습니다. Yield를 사용하는 경우:

<?phpfunction createRange($number){
    for($i=0;$i<$number;$i++){
        yield time();
    }}$data =createRange(10);foreach($data as $value){
    sleep(1);//这里停顿1秒,我们后续有用
    echo $value.PHP_EOL;}
로그인 후 복사

1분 안에 PHP에서 Yield를 사용하는 방법 알아보기(공유)
시간 간격은 1초이므로 Yield의 예를 통해 첫 번째 예처럼 for 루프의 내용이 메모리에 저장되지 않고 하나씩 소모된다는 것을 알 수 있습니다. 하나.

파일 읽기 예

txt 파일을 만들고 다음과 같이 씁니다.

第1行
第2行
第3行
第4行
第5行
第6行
第7行
第8行
로그인 후 복사
<?phpfunction readTxt(){
    # code...
    $handle = fopen("./test.txt", &#39;rb&#39;);

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

    fclose($handle);}foreach (readTxt() as $key => $value) {
    # code...
    sleep(1);
    echo $value;}
로그인 후 복사

PHP로 파일을 읽으면 한 줄씩 읽습니다.
1분 안에 PHP에서 Yield를 사용하는 방법 알아보기(공유)

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 1분 안에 PHP에서 Yield를 사용하는 방법 알아보기(공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿