如果我有一个stdObject
,比如说,$a
。
当然,分配一个新属性$a
没有问题,
$a->new_property = $xyz;
但是我想删除它,所以unset
在这里帮不上忙。
所以,
$a->new_property = null;
就是这样。但是有没有更“优雅”的方式呢?
发布于 2010-08-30 21:26:53
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())
发布于 2014-09-09 23:07:31
当你在一个对象上循环时,这也是特别有效的。
unset($object[$key])
更新
正如@CXJ所提到的,更新版本的PHP抛出致命错误Fatal error: Cannot use object of type Object as array
。在这种情况下,您可以使用括号代替
unset($object->{$key})
发布于 2019-02-28 23:49:29
如果您在对象上循环,这也是有效的。
unset($object->$key);
不需要使用括号。
https://stackoverflow.com/questions/3600750
复制相似问题