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 回答