I’m using PHP 8.2.13 and I’m learning about fiber in php. The code that I’m working on is like this:
<?php$i = 0;// Create a fiber that prints even numbers$fiber1 = new Fiber(function () use (&$fiber2) { for ($i=0; $i < 10; $i += 2) { echo "Fiber 1: $i\n"; // Suspend the fiber and return the next odd number Fiber::suspend('fiber1'); $fiber2->resume($i + 1); }});// Create a fiber that prints odd numbers$fiber2 = new Fiber(function ($n) use (&$fiber1) { for ($i = $n; $i < 10; $i += 2) { echo "Fiber 2: $i\n"; // Suspend the fiber and return the next even number Fiber::suspend('fiber2'); $i = $fiber1->resume($i + 1); }});// Start the first fiber$fiber1->start();
And the expected output should be like this:
Fiber 1: 0Fiber 2: 1Fiber 1: 2Fiber 2: 3Fiber 1: 4Fiber 2: 5Fiber 1: 6Fiber 2: 7Fiber 1: 8Fiber 2: 9
But unfortunately for me the output is like this:
Fiber 1: 0
I expect them to fix my code, or remind me of my problem.