在foreach循环中编辑SimpleXML节点


Edit SimpleXML node in a foreach loop

我试图在循环中编辑节点值。我可以很好地编辑具有唯一名称的节点。

 $gdNodes->orgName = 'test';

但是,当我处于循环中时,输出XML时不会保存该值。

foreach($gdNodes->phoneNumber as $phone)
{
    $phone = '1234567';
}

两者都是SimpleXMLElement类对象。我不明白为什么它不省钱。它是如何完成的?

它不会保存,因为$phone是原始值的标量副本。

你应该能够达到这样的目标:

foreach($gdNodes->phoneNumber as $key => $phone)
{
    $gdNodes->phoneNumber[$key] = '1234567';
}