首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中可以删除对象的属性吗?

在PHP中可以删除对象的属性吗?
EN

Stack Overflow用户
提问于 2010-08-30 21:25:54
回答 5查看 232.5K关注 0票数 241

如果我有一个stdObject,比如说,$a

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

代码语言:javascript
复制
$a->new_property = $xyz;

但是我想删除它,所以unset在这里帮不上忙。

所以,

代码语言:javascript
复制
$a->new_property = null;

就是这样。但是有没有更“优雅”的方式呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-30 21:26:53

代码语言:javascript
复制
unset($a->new_property);

这适用于数组元素、变量和对象属性。

示例:

代码语言:javascript
复制
$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())
票数 441
EN

Stack Overflow用户

发布于 2014-09-09 23:07:31

当你在一个对象上循环时,这也是特别有效的。

代码语言:javascript
复制
unset($object[$key])

更新

正如@CXJ所提到的,更新版本的PHP抛出致命错误Fatal error: Cannot use object of type Object as array。在这种情况下,您可以使用括号代替

代码语言:javascript
复制
unset($object->{$key})
票数 52
EN

Stack Overflow用户

发布于 2019-02-28 23:49:29

如果您在对象上循环,这也是有效的。

代码语言:javascript
复制
unset($object->$key);

不需要使用括号。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3600750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档