PHPの致命的エラー: Uncaught TypeError: count(): 引数#1 ($value) の型はCountable配列でなければなりません、nullが渡されました


このエラーが発生する主な原因は、count()関数に渡される変数が配列でないか、またはnullである場合です。以下に、このエラーの可能性のある原因と解決策をいくつか示します。

  1. 変数がnullである場合: count()関数を呼び出す前に、変数がnullでないことを確認してください。例えば、以下のように条件分岐を追加することができます。

    if ($value !== null) {
       $count = count($value);
    }
  2. 変数が配列でない場合: count()関数は、Countableインターフェースを実装したオブジェクトまたは配列に対してのみ動作します。変数が配列であることを確認してください。例えば、is_array()関数を使用して型をチェックすることができます。

    if (is_array($value)) {
       $count = count($value);
    }

    もしくは、配列でない場合にエラー処理を行うこともできます。

    if (!is_array($value)) {
       // エラー処理
    }
    $count = count($value);
  3. 変数がCountableインターフェースを実装していないオブジェクトの場合: count()関数は、Countableインターフェースを実装したオブジェクトに対しても動作します。もし変数がCountableインターフェースを実装していないオブジェクトである場合、オブジェクト内でcount()メソッドを実装する必要があります。