取消设置循环内对象的当前属性[重复]

Posted

技术标签:

【中文标题】取消设置循环内对象的当前属性[重复]【英文标题】:Unset current property of an object inside a loop [duplicate] 【发布时间】:2013-06-12 03:36:57 【问题描述】:

我觉得代码很明显:

foreach ($programs as $program) 
    if ($program->name == 'foo') 
        unset($program);
    

但它不起作用! 是否可以取消设置当前属性?问题出在哪里?有没有替代品?

【问题讨论】:

我的问题是关于对象而不是数组。 $programs 是一个对象(如问题标题所示)还是一个对象数组(如代码所示)? 它是一个对象。我的代码中没有数组 你想达到什么目的?代码并不明显,您也没有说出在 unset() 调用后会发生什么。 @cebe 我想取消设置属性!我想从对象中删除一些东西,但它仍然存在! 【参考方案1】:
foreach ($programs as $property => $program) 
//                    ^-----------^ added
    if ($program->name == 'foo') 
        unset($programs->$property);
//                     ^---------^ added
    

【讨论】:

谢谢。它正在工作......

以上是关于取消设置循环内对象的当前属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章