0

配列を表すと思われるオブジェクトを作成しましたが、いくつかのメソッドを使用しました。そこで、ネイティブインターフェイスを実装するようにしました:IteratorAggregateCountable。そうすればあなたはそれをすることができforeachますcount。ここまでは順調ですね。

しかし今、私はそれを配列のように評価したいと思っています。したがって、count($object)がゼロの場合、if($object)はと評価されfalseます。Comparableインターフェースか何かありますか?

4

2 に答える 2

1

タイプジャグリングを使用します。

varの予想されるタイプを割り当てることができます。

$object = count ( $object );
$object = (array) $object;

同様に、変数に他のタイプを割り当てたい場合は、次のリストを使用できます。

  • (int)
  • (bool)
  • (float)
  • (string)
  • (array)
  • (object)
  • (unset)
  • (binary)

また、この比較可能なインターフェースを確認してください。

于 2013-03-25T20:17:24.207 に答える
0

ドキュメントには、falseと評価されるすべてのものが示されています。

  • ブール値FALSE自体
  • 整数0(ゼロ)
  • フロート0.0(ゼロ)
  • 空の文字列、および文字列"0"
  • 要素がゼロの配列
  • メンバー変数がゼロのオブジェクト(PHP 4のみ
  • 特殊なタイプNULL(未設定の変数を含む)
  • 空のタグから作成されたSimpleXMLオブジェクト

このリストの時点では、オブジェクトがと見なされることはありませんfalseしたがって、 TomiSebastiánJuárezの回答で指摘されているように、厳密な比較を行う必要がある場合は、count()を使用しての値をブール値にキャストするのが唯一の方法です。(bool)

于 2013-03-25T20:24:36.110 に答える