Dom - 使用false值创建元素

时间:2013-07-25 07:43:48

标签: php dom

使用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>"

提前致谢

3 个答案:

答案 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。当您将其stringDemo时,false评估为空字符串string(0) "")和true1string(1) "1") }})。

有关type juggling的详细信息,请阅读documentation

注意: Type juggling是php的黑暗面所以我建议避免混合变量类型。

答案 2 :(得分:0)

$ element = $ dom-&gt; createElement('my_element','false');