使用Dom,我正在尝试创建一个值为false的元素。但是,当我给它赋值false时,它只是将一个空字符串作为值。我认为这是因为默认值为false。有办法解决这个问题吗?
$dom = new DOMDocument('1.0');
$element = $dom->createElement('my_element', false);
$dom->appendChild($element);
var_dump($dom->saveXML());
// returns string(48) "<?xml version="1.0"?><my_element></my_element>"
提前致谢
答案 0 :(得分:3)
$element = $dom->createElement('my_element', 'false');
第二个参数是一个值。 false
是一个布尔值。
答案 1 :(得分:1)
如果您希望生成的false
中的my_element
内的值为xml
,则需要编写'false'
,因为您向元素追加string
,而不是boolean
正如您从docs DOMDocument::createElement
看到的那样有以下签名:
DOMDocument::createElement ( string $name [, string $value ] )
这意味着预期的第二个参数类型是string
。当您将boolean
作为参数传递时,它将转换为string
。当您将其string
(Demo时,false
评估为空字符串string(0) ""
)和true
至1
(string(1) "1"
) }})。
有关type juggling的详细信息,请阅读documentation。
注意: Type juggling是php的黑暗面所以我建议避免混合变量类型。
答案 2 :(得分:0)
$ element = $ dom-&gt; createElement('my_element','false');