是否可以在 PHP 中删除对象的属性?
如果我有发言权,.stdObject
$a
当然,分配新属性没有问题, ,$a
$a->new_property = $xyz;
但后来我想删除它,所以在这里没有帮助。unset
所以
$a->new_property = null;
就是这样。但是有没有更“优雅”的方式呢?
如果我有发言权,.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])
较新版本的PHP抛出致命错误,如@CXJ所述。在这种情况下,您可以改用括号Fatal error: Cannot use object of type Object as array
unset($object->{$key})