Php 取消设置循环内对象的当前属性

Php 取消设置循环内对象的当前属性,php,Php,我认为代码是显而易见的: foreach ($programs as $program) { if ($program->name == 'foo') { unset($program); } } 但它不起作用是否可以取消设置当前属性?问题出在哪里?有其他选择吗?我的问题是关于对象而不是数组。$programs是对象(如问题标题所示)还是对象数组(如代码所示)?它是对象。我的代码中没有数组你想用这个做什么?代码不明显,您也没有说unset()调用后会发生什

我认为代码是显而易见的:

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

但它不起作用
是否可以取消设置当前属性?问题出在哪里?有其他选择吗?

我的问题是关于对象而不是数组。
$programs
是对象(如问题标题所示)还是对象数组(如代码所示)?它是对象。我的代码中没有数组你想用这个做什么?代码不明显,您也没有说unset()调用后会发生什么。@cebe我想取消设置属性!我想从一个物体上移除一些东西,但它仍然在那里!我的问题是关于对象而不是数组。
$programs
是对象(如问题标题所示)还是对象数组(如代码所示)?它是对象。我的代码中没有数组你想用这个做什么?代码不明显,您也没有说unset()调用后会发生什么。@cebe我想取消设置属性!我想从一个物体上移除一些东西,但它仍然在那里!谢谢它在工作…谢谢。它正在工作。。。
foreach ($programs as $property => $program) {
//                    ^-----------^ added
    if ($program->name == 'foo') {
        unset($programs->$property);
//                     ^---------^ added
    }
}