<?php for ($i = 0; $i < 5; $i++) { if (pcntl_fork() == 0) { echo rand(0, 100), "\n"; exit; } }
これはばらばらの値を返すけど、
<?php echo rand(0, 100), "\n"; for ($i = 0; $i < 5; $i++) { if (pcntl_fork() == 0) { echo rand(0, 100), "\n"; exit; } }
と、親プロセス側で先に一度rand()が呼ばれていると、子プロセスが出力するrand()はすべて同じになってしまう。rand()は最初に呼ばれた時に自動的にsrand()されるので、同じseedが使われているということか。