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类型,而我的是大声笑。
任何人都可以分享任何见解?
干杯