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

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
    

【讨论】:

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

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

在角度重复循环内设置和获取引导单选按钮

PHP - 在foreach循环中取消设置数组元素[重复]

点击事件循环丢失数组范围[重复]

在for循环内设置动态键和值[重复]

在循环内创建 lambda [重复]

即使在设置 EnableDelayedExpansion [重复] 之后,也无法在批处理文件中的 for 循环内设置变量值