Fiber::isRunning() will only return true if you call it from within a Fiber while it is running.
<?php
$fiber = new Fiber(function ($fiber) {
echo "Inside Fiber. isRunning: ";
var_dump($fiber->isRunning()); // Here is true
Fiber::suspend();
echo "Inside Fiber again after resume(). isRunning: ";
var_dump($fiber->isRunning()); // true again
});
echo "Before Fiber launch. isRunning: ";
var_dump($fiber->isRunning()); // Here is false
$fiber->start($fiber);
echo "After suspend. isRunning: ";
var_dump($fiber->isRunning()); // Here is false
$fiber->resume();
echo "After resume. isRunning: ";
var_dump($fiber->isRunning()); // Here is false
?>
Result:
Before Fiber launch. isRunning: bool(false)
Inside Fiber. isRunning: bool(true)
After suspend. isRunning: bool(false)
Inside Fiber again after resume(). isRunning: bool(true)
After resume. isRunning: bool(false)