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']是一個正確的值。我做錯了什麼,或者我不能在方括號內放置一個變量?
就是這樣!我想簡單地檢查(is_numeric)是否確保它是一個整數,但它仍然是一個字符串。使用settype我設法讓它工作,非常感謝幫助! – 2012-08-15 19:10:03
太棒了:D我很高興它的工作! – trevorkavanaugh 2012-08-15 19:13:01
經驗法則:'is_numeric'幾乎不是您想要的功能。不要相信我?嘗試'is_numeric(「1.09e52」)'。也就是說,這是另一種SimpleXML不是正常PHP的情況 - 對於真正的PHP數組,「$ variable [0]」和「$ variable [」0「]'最明確**是**相同。 – IMSoP 2012-08-18 22:10:43