是否有可能在PHP中删除对象的属性?

如果我有一个stdObject说, $a

当然,分配一个新的属性$a是没有问题$a

 $a->new_property = $xyz; 

但是我想删除它,所以在这里没有任何帮助。

所以,

 $a->new_property = null; 

是那种。 但是还有更“优雅”的方式吗?

 unset($a->new_property); 

这适用于数组元素,variables和对象属性

** 编辑 **

我不知道你是如何使用unset() ,但这是如何工作对我来说:

 $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]) 

更新

PHP的更新版本引发致命错误Fatal error: Cannot use object of type Object as array像@CXJ所提到的那样Fatal error: Cannot use object of type Object as array 。 在这种情况下,你可以使用这个语法

 unset($object->{$key})