【发布时间】:2015-01-18 04:51:23
【问题描述】:
我查看了所有关于取消设置元素的问题,我没有犯任何错误,但取消设置后该元素仍然存在。
更新:我已将 RichardBernards 的建议纳入下方,但这仍在发生:
foreach($oldObject AS $key1=>$val1)
{
if (!empty($val1))
{
$newObject->$key1 = $val1;
if (is_array($oldObject->$key1))
{
foreach ($oldObject->$key1 as $key2 => $val2)
{
if (empty($val2))
{
print('Found to be empty: unsetting newObject->' . $key1 . '[' . $key2 . ']');
unset($newObject->$key1[$key2]);
if (array_key_exists($key2, $newObject->$key1))
{
print('The key ' . $key2 . ' still exists. What is going on?');
}
}
}
}
}
}
在这段代码中,文本“密钥仍然存在。这是怎么回事?”每次都在打印。
我必须取消设置空元素,因为我正在使用对象进行 SOAP 调用,如果对象中有任何空字符串,SOAP 会拒绝该对象。但是为什么$newObject->$var[$key] 在我明确取消设置后仍然存在?
是因为我试图取消设置对象内的数组元素吗?
任何帮助将不胜感激。
【问题讨论】: