0

私は以下のようなクラスを持っています:

class Fields implements ArrayAccess, Countable, SeekableIterator 
{
   $this->_fields = array();

   ...continue
}

クラスに次のブール値機能を持たせたい

$myArray = new Fields();
if($myArray == false)
{
   echo 'It is empty';
}

上記の動作をクラスに実装する方法

4

1 に答える 1

0

それはあなたの「問題」の良い解決策ではありませんが、うまくいきます。

class Fields implements ArrayAccess, Countable, SeekableIterator 
{
  protected $_fields = array();

  // ...continue

  public function __invoke() {
    return $this->_fields == true;
  }
}

__invoke()オブジェクトが関数として使用される場合に呼び出されるメソッドを実装しただけです。次のようにすると、期待どおりに動作します。

$myArray = new Fields();
if($myArray() == false)
{
   echo 'It is empty';
}

これはおそらく最善の方法でも使用すべき方法でもありませんが__invoke、可能性はあります。

于 2013-02-08T11:58:40.147 に答える