是否有可能在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})