如何使自定义数组类在空时返回布尔值

时间:2013-02-08 11:50:13

标签: php arrays object

我有一个课程如下:

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

   ...continue
}

我希望我的班级具有以下布尔能力

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

如何在我的班级中实施上述行为

1 个答案:

答案 0 :(得分: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的最佳方式或方式,但这是可能的。