将PHP类重写为非readonly

时间:2013-09-03 14:51:20

标签: php class dom

我目前正在使用php中的DOM,而我所处的上下文需要一些递归,这会弄乱我的代码,但工作正常。

我想保持我的代码清洁与PHP的那个只读的东西,我无法继续。

我正在尝试做类似的事情:

$test = new DOMElement('div');
$test->setAttribute('class','blue');

但是我收到了错误

  

致命错误:未捕获的异常'DOMException',消息为“否”   修改允许错误'

我可以将setAttribute设置为此元素,直到我将其附加到DOMDocument。有没有办法做到这一点?

我在考虑像

这样的东西
class Elem extends DOMElement
{
//and here maybe i could do something to override this readonly
}

这甚至可能吗?

我不想先创建DOMDocument,然后使用createElement()方法并附加它们(我已经这样做了),我只想创建元素,然后在以后附加它们。

1 个答案:

答案 0 :(得分:3)

您只能在将DOMElement添加到DOMDocument后修改{{1}}。

由于这个类是用C代码实现的,所以你不能简单地覆盖一个方法(即使你愿意重新实现整个方法),因为你无法访问C代码访问的任何内部结构来实际设置属性。