[PHP8] Fibers > Web/PHP/API

본문 바로가기
사이트 내 전체검색

Web/PHP/API

[PHP8] Fibers

페이지 정보

작성자 sbLAB 댓글 0건 조회 1,044회 작성일 23-07-16 14:01

본문

Fibers

https://www.php.net/manual/en/language.fibers.php 


- 로직 실행 순서 결정 가능

- Fiber 내부 함수 로직 실행결과 리턴값 받기 가능

- 현재 실행을 일시 중지하고 다른 작업을 수행한 다음 현재 실행으로 돌아가는 구조화된 방법. 


  <?php   $fiber1 = new Fiber(function (int $parm): bool {
        sleep(1);
        echo "fiber1 parm => " . $parm . "\n";
        echo "fiber1 run\n";
        return true;
    });

    $fiber2 = new Fiber(function () {
        sleep(1);
        echo "fiber2 run\n";
        return false;
    });

    $fiber2->start();   //fiber2 run
    $fiber1->start(10); //fiber1 parm => 10

    print_r($fiber1->getReturn()); //1
    echo "\n";
    print_r($fiber2->getReturn()); // <-- 공백(0=false) var_dump($fiber2->getReturn()); 에서 bool(false) 이 리턴 확인
    echo "\n";

    var_dump((string)$fiber1->getReturn()); //string(1) "1"
    var_dump((string)$fiber2->getReturn()); //string(0) ""


    var_dump((int)$fiber1->getReturn());    //int(1)
    var_dump((int)$fiber2->getReturn());    //int(0)

    var_dump($fiber1->getReturn());         //bool(true)
    var_dump($fiber2->getReturn());         //bool(false)

    if ($fiber2->getReturn() == false) {    //fiber2 -> false
        echo "fiber2 -> false";
    }


[Result]

    fiber2 run
    fiber1 parm => 10
    fiber1 run
    1

<-- 공백(0=false) string(1) "1" string(0) "" int(1) int(0)

    bool(true)
    bool(false)
    fiber2 -> false



댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
294
어제
286
최대
1,279
전체
204,239

그누보드5
Copyright © sebom.com All rights reserved.