。ザワくんブログ

。ザワくんブログ

php7.2にてcount使うとエラーが出てしまう泣

投稿日:2021/8/9

php

wordpressを使ってサイト作成をしていたときの話でした。カスタム投稿でコンテンツ一覧を出力し紐づいているカテゴリーの名前も一緒に出力していくというそこまで難易度も高くない要望でしたのでいつもどおり作成していました。
そんなとき、今まで作成していたら出ていなかったエラーが出てくるようになりました泣

Warning: count(): Parameter must be an array or an object that implements Countable in …

とのことで公式マニュアルを確認してみると以下の記述がありました

count(NULL) returns a warning:
Warning: count(): Parameter must be an array or an object that implements Countable

なるほど!conut(NULL)に対してwarningを吐くようになったのか!!!以前のバージョンではconut(NULL)は0で返していたからバージョンが違ってエラーが出るんですね泣

ただどのカテゴリーに当てはまらない場合もあると思うのでエラーが出たままだとまずいですね泣
ということでconut(NULL)でもうまくいくようにしてみました

<?php
  $terms = get_the_terms( $post ->ID, 'カテゴリーの名前' );
  if (is_array($terms)){
    $length = count($terms);
      for ($i = 0; $i <= $length - 1; $i++){
         echo '<span>'.$terms[$i]->name.'</span>';
      }
  } 
?>

変数を定義した後に、is_arrayで存在の条件分岐をしてあげて出力するみたいな感じですね。
解決してよかったです。以上です。