2010-12-30 4 views
0

$row->attributes()によって参照される動的クラスがあります。動的クラスには、いくつかのオーバーロードされた(動的)プロパティがあります。 $row->attributes()->property1動的PHPオブジェクトの属性を設定解除しています

プロパティ1の設定を解除します。私は$row->attributes()->__unset("property1")unset($row->attributes()->property1)を試しました。喜びはありません。

誰でもこの方法を知っていますか?

+0

オブジェクトプロパティのアンセットをどの程度うまく呼び出すことができるか(または可能であっても)わかりません。なぜ値をnullに設定しないのですか?不動産を完全に消滅させなければならない理由は何ですか? –

+0

XMLタグの属性を連想配列に変換する関数を記述する。ユーザーにその配列のキーを設定するオプション(属性値から)を与え、その配列から属性を削除したい。 – bcoughlan

+0

あなたは 'SimpleXMLElement'を使用していますか? – salathe

答えて

2

あなたがこのアプローチを使用しているかどうかという疑問から、私がこの回答を削除するかどうかは不明です。

__unsetを見てみましょう、簡単な例は次のとおりです。

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

あなたは、単にunset($row->attributes()->property1)を行う必要があり、それが実際にFoo->__unset('property1')を呼び出します。

+0

非常に巧妙です。それはほぼ魔法のようです。 +1 – Abinadi

+0

あなたの答えは正しいが、この場合、クラスはPHPソースコード(SimpleXMLElement)に組み込まれているため、変更することはできません。おそらく実装エラーです。 – bcoughlan

関連する問題