Just to let others who might be struggling to get it to work, curl_multi_info_read() doesn't work in PHP versions before 5.2.0, and instead returns NULL immediately.(PHP 5, PHP 7, PHP 8)
curl_multi_info_read — 現在の転送についての情報を表示する
マルチハンドルに対して、個別の転送にメッセージ/情報が残っているかどうかを問い合わせます。 メッセージには、転送時のエラーコードや転送が完了したという情報が残っている可能性があります。
   
   この関数を繰り返しコールすると、毎回新しい結果を返します。false
   が返されると、その時点でもう取得する結果がないことを意味します。
   queued_messages がさす値は、
   この関数をコールした後に残っているメッセージの数となります。
  
返されたリソースがさすデータは、 curl_multi_remove_handle() をコールした後には残りません。
   成功した場合にメッセージの連想配列、失敗した場合に false を返します。
  
| キー | 値 | 
|---|---|
| msg | 定数 CURLMSG_DONE。その他の戻り値は現在は存在しません。 | 
| result | 定数 CURLE_*のいずれか。すべて OK ならCURLE_OKが返ります。 | 
| handle | curl が扱うハンドルの型を表すリソース。 | 
| バージョン | 説明 | 
|---|---|
| 8.0.0 | multi_handleは CurlMultiHandle クラスのインスタンスを期待するようになりました。
  これより前のバージョンでは、resource を期待していました。 | 
Just to let others who might be struggling to get it to work, curl_multi_info_read() doesn't work in PHP versions before 5.2.0, and instead returns NULL immediately.