stdObject
が言うなら、$a
。
新しいプロパティ$a
を割り当てても問題ありません。
$a->new_property = $xyz;
しかし、それを削除したいので、unset
はここでは役に立ちません。
そう、
$a->new_property = null;
それは一種です。しかし、より「エレガントな」方法はありますか?
unset($a->new_property);
これは、配列要素、変数、およびオブジェクト属性に対して機能します。
例:
$a = new stdClass();
$a->new_property = 'foo';
var_export($a); // -> stdClass::__set_state(array('new_property' => 'foo'))
unset($a->new_property);
var_export($a); // -> stdClass::__set_state(array())
これは、オブジェクトをループしている場合にも特に機能します。
unset($object[$key])
@CXJで述べられているように、PHPの新しいバージョンは致命的なエラーFatal error: Cannot use object of type Object as array
をスローします。その場合、代わりにブラケットを使用できます
unset($object{$key})
これは、オブジェクトをループしている場合にも機能します。
unset($object->$key);
ブラケットを使用する必要はありません。