0

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

前もって感謝します

4

3 に答える 3

3
$element = $dom->createElement('my_element', 'false');

2 番目のパラメーターは値です。falseブール値です。

于 2013-07-25T07:45:12.560 に答える
1

generatedfalse内の値が必要な場合は、要素に a ではなく aを追加するため、書き込む必要があります。my_elementxml'false'stringboolean

ドキュメント からわかるように、DOMDocument::createElement次の署名があります。

DOMDocument::createElement ( string $name [, string $value ] )

つまり、期待される 2 番目のパラメーターの型はstringです。パラメータとして渡すbooleanと、 にキャストされstringます。false空文字列 ( string(0) "")に評価され、 ( Demo )としてキャストすると ( ) にtrue評価1されます。string(1) "1"string

型ジャグリングの詳細については、ドキュメントを参照してください。

注: 型のジャグリングは php の暗部であるため、変数の型を混在させないことをお勧めします。

于 2013-07-25T07:46:11.373 に答える
0

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

于 2013-07-25T10:58:30.117 に答える