0

使用变量索引而不是数字索引时,我在取消设置 SimpleXML 节点时遇到问题。

这是我调用 simpleXML 的代码:

$highlights = new SimpleXMLElement($prj['project_xmldata']);
$node=$_POST['node'];
if(count($highlights->highlights->highlight)>0) {
   unset($highlights->highlights->highlight[$node]);
   print_r($highlights);
}

print_r 语句的内容仍然显示原始 XML 数据。但是,如果我使用数字索引而不是变量来取消设置节点,$node我会得到正确的响应,并删除我取消设置的节点。

我也尝试用双引号封装变量,并确保 $_POST['node'] 是正确的值。我做错了什么,或者我不能在方括号内放一个变量吗?

4

1 回答 1

1

将您的代码更改为此并让我知道它的内容:

$highlights = new SimpleXMLElement($prj['project_xmldata']); 
$node=$_POST['node']; 
if(isset($highlights->highlights->highlight[$node])) {    
    unset($highlights->highlights->highlight[$node]);    
    print_r($highlights); 
} 
else
    echo $node." = ".gettype($node);

确保该节点是正确的。确保它被注册为 int 而不是字符串。

$variable[0] 不同于 $variable["0"]

于 2012-08-15T19:01:01.993 回答