扩展ArrayObject的PHP类失败的Arrayof ArrayObject

时间:2014-12-26 04:53:25

标签: php

PHP的新手..

我有一个扩展ArrayObject的类,然后这个类被传递给其他地方的函数,该函数运行检查以查看该类是否为ArrayObject或Array类型,原谅了这个术语。

这是有问题的课程:

use ArrayObject;
use ArrayAccess;

class Parser extends ArrayObject implements ArrayAccess
{
     public $data = [];

     //Custom functions & ArrayAccess interface functions all present below..
}

所以在其他一些课程中

class SomeClass 
{
   public function __construct()
   {
       $this->expectingArrayObjectType = new Parser();

       $this->config($this->expectingArrayObjectType);
   }

   private function config($name, $value = null)
   {
        if($name instanceof ArrayObject || is_array($name)) {
             //This never gets hit..    
        }
   }
}

我实际上是通过更改

来解决问题
$this->config($this->expectingArrayObjectType);

到此

$this->config($this->expectingArrayObjectType->data);

这是完全可以理解的(据我所知),它只是让我感到困惑,因为我正在对一个朋友代码进行逆向工程,并且他们正在传递Parser对象并且它正在检查是否为ArrayObject类型,而我的是大声笑。

任何人都可以分享任何见解?

干杯

0 个答案:

没有答案