3

メソッドの戻り値の型は、ものの配列または false のいずれかです。

したがって、結果を配列にキャストして、コードが false または配列をチェックする必要がないようにしています。

しかし、php は 1 つの要素を含む配列に false をキャストしています: false:

array(1) {
  [0]=>
  bool(false)
}

どうして!

if ステートメントなしでこれを達成する方法はありますか?

すなわち

if ($returnValue === false) {
    return array();
} else {
    return $returnValue;
}
4

1 に答える 1

6

設計どおりに動作します。マニュアルでは次のように指定されています

integerfloatstringbooleanおよびのいずれかの型resourceの場合、値を配列に変換すると、インデックス 0 と変換されたスカラーの値を持つ単一の要素を持つ配列になります。つまり、(array)$scalarValueとまったく同じarray($scalarValue)です。

単純に三項演算子を使用することはできませんか?

return (is_array($returnValue) ? $returnValue : array());
于 2013-11-11T17:08:28.603 に答える