扩展ArrayObject失败实例ArrayObject的PHP类
对PHP来说相当陌生 我有一个扩展了ArrayObject的类,然后这个类被传递给其他地方的函数,它运行一个检查,看看这个类是ArrayObject类型还是Array类型,请原谅这个术语 这是一节有问题的课:扩展ArrayObject失败实例ArrayObject的PHP类,php,Php,对PHP来说相当陌生 我有一个扩展了ArrayObject的类,然后这个类被传递给其他地方的函数,它运行一个检查,看看这个类是ArrayObject类型还是Array类型,请原谅这个术语 这是一节有问题的课: use ArrayObject; use ArrayAccess; class Parser extends ArrayObject implements ArrayAccess { public $data = []; //Custom functions &am
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);
这是完全可以理解的(据我所知),这让我很困惑,因为我正在反向工程一个friends代码,他们正在传递解析器对象,它正在检查ArrayObject类型,而我的不是lol
有人能分享任何见解吗
干杯事实上,您在
public$data=[]处有语法错误代码>行。应该是public$data=array()
我不明白您试图通过扩展ArrayObject并引入public$data
数组来实现什么?@TigranTokmajyan实际上,从PHP 5.4开始,这在语法上是正确的+