PHP7.2からcount()のエラーについて

Pocket

PHP7.2から、count() (およびそのaliasであるsizeof() )でwarningが出るようになっているので要注意。
http://php.net/manual/en/function.count.php

<?php
// $aをちゃんと定義
$a = array( 1,3,5 );
var_dump( count( $a ) );
// $bは空の場合
$b = array();
var_dump( count( $b ) );
// $c を定義しない場合
var_dump( count( $c ) );
var_dump( count(false));
?>

とすると、出力上は
int(3) int(0) int(0) int(1)
と出るが、errorlogを見ると

[25-Apr-2018 07:26:33 Asia/Yakutsk] PHP Notice: Undefined variable: c in /Applications/MAMP/htdocs/test.php on line 11
[25-Apr-2018 07:26:33 Asia/Yakutsk] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /Applications/MAMP/htdocs/test.php on line 11
[25-Apr-2018 07:26:33 Asia/Yakutsk] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /Applications/MAMP/htdocs/test.php on line 13

と、Warningがでる。
回避するには、 is_array() で判定してから使う(か、@を付けてWarningを隠す。。)。

この記事を書いた人