キャスト

http://blog.bmedianode.com/2005/09/php_array_.html

PHPの基本型をarrayにキャストできます。できることは知ってましたが、なんとなく不安なので使ってませんでした。is_array()で配列じゃなかったらarray()で括ってました。

効率はどうなんだろうということで簡単にテストしました。

function cast($var)
{
    return (array)$var;
}

function if_array($var)
{
    return is_array($var)? $var: array($var);
}

function getTime()
{
    return explode(" ", microtime(true));
}

function diff($time)
{
    list($m_end, $s_end) = getTime();
    $m_start = $time[0];
    $s_start = $time[1];
    return ($s_end - $s_start) + ($m_end - $m_start);
}

$st = getTime();
for($i=0;$i<500;++$i){
    cast('foo');
}
print "cast:". diff($st) . "sec<br>\n";

$st = getTime();
for($i=0;$i<500;++$i){
    if_array('foo');
}
print "array:". diff($st) . "sec<br>\n";

結果は

cast:0.014706sec
array:0.023222sec

キャストの方が効率よいみたいです。
NULLのときだけ気をつける必要がありますが、今後はキャスト使おうかなと思います。