[PHP8] Fibers
페이지 정보
작성자 sbLAB 댓글 0건 조회 575회 작성일 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
댓글목록
등록된 댓글이 없습니다.