取消设置动态PHP对象的属性

取消设置动态PHP对象的属性,php,object,overloading,Php,Object,Overloading,我有一个由$row->attributes()引用的动态类,它有一些重载(动态)属性,例如$row->attributes()->property1 我想取消房产交易。我已经尝试了$row->attributes()->unset(“property1”)和unset($row->attributes()->property1)。没有快乐 有人知道如何做到这一点吗?这个问题不清楚您是否使用过这种方法,如果您使用过,我将删除这个答案 看一看,简单的例子是: class Foo { publ

我有一个由
$row->attributes()
引用的动态类,它有一些重载(动态)属性,例如
$row->attributes()->property1

我想取消房产交易。我已经尝试了
$row->attributes()->unset(“property1”)
unset($row->attributes()->property1)
。没有快乐


有人知道如何做到这一点吗?

这个问题不清楚您是否使用过这种方法,如果您使用过,我将删除这个答案

看一看,简单的例子是:

class Foo
{
    public function __unset($property)
    {
        unset($this->__my_property_holder[$property]);
    }
}

您只需执行
unset($row->attributes()->property1)
,它将实际调用
Foo->\uu unset('property1')

我不确定对对象属性调用unset会有多好(或者即使可能)。为什么不直接将值设置为null?属性必须完全熄灭的原因是什么?编写一个函数,将XML标记的属性转换为关联数组。为用户提供为该数组设置键(从属性值)的选项,并希望从该数组中删除该属性。您是否使用(或扩展?
SimpleXMLElement
?您好,是的,我使用的是SimpleXMLElement,而您的答案是正确的,在这种情况下,该类内置于PHP源代码(SimpleXMLElement)中所以我不能修改它。也许这是一个实现错误。