count()コマンド エラー

function validation ($array)
{
$errors = [];
$errors = ' ';
return $errors;
}
$errors = validation($);
if (!count($errors)) {
}

エラー内容:Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/create.php on line 68

解決策 function内で入力した$errorsを$errors['name']にした。

原因 count()の中の$errorsが配列になっていなかったこと。function内の$errors = ''; 配列を文字列に変えてしまっていたこと。

追加
前のバージョンではcount(NULL)に対して0を返していたが、PHP 7.2からwarnnigが出る。
NULLを返す場合がある場合には
if (in_array()) {
}
で配列かどうかをバリデーションしてからcount()をするとよい。
count()には、配列もしくはカウントできるオブジェクトでないといけない。

この記事が気に入ったらサポートをしてみませんか?