[PHP8] Fibers > Web

본문 바로가기

사이트 내 전체검색

Web

[PHP8] Fibers

작성일 23-07-16 14:01

페이지 정보

작성자sbLAB 조회 1,461회 댓글 0건

본문

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



댓글목록

등록된 댓글이 없습니다.

Copyright © 소유하신 도메인. All rights reserved.
PC 버전으로 보기