LoginSignup
3
3

More than 5 years have passed since last update.

count()の挙動

Last updated at Posted at 2013-01-25
count.php
<?php

function echoCount($val)
{
    var_dump($val);
    echo "=> ";
    echo count($val);
    echo "\n";
}

echoCount("a");
echoCount("1");
echoCount("0");
echoCount(1);
echoCount(0);
echoCount(true);
echoCount(false);

として実行すると、


$ php count.php
string(1) "a"
=> 1
string(1) "1"
=> 1
string(1) "0"
=> 1
int(1)
=> 1
int(0)
=> 1
bool(true)
=> 1
bool(false)
=> 1

こんな感じになる。

phpのマニュアル|count関数によると、

varに含まれる要素の数を返します。 もし var が配列もしくは Countable インターフェイスを実装したオブジェクトではない場合、 1 が返されます。 ひとつ例外があり、var が NULL の場合、 0 が返されます。

とのこと。intやboolや文字列は、配列ではないので、1が返されるようだ。

なので、

 if ( is_array($var) && count($var) > 0 ) {
    // ....
 }

みたいにするのがよさげ。

PHPおそろしい子っ!!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3