HEX
Server: Apache
System: Linux sg241.singhost.net 2.6.32-896.16.1.lve1.4.51.el6.x86_64 #1 SMP Wed Jan 17 13:19:23 EST 2018 x86_64
User: honghock (909)
PHP: 8.0.30
Disabled: passthru,system,shell_exec,show_source,exec,popen,proc_open
Upload Files
File: //opt/cloudlinux/alt-php54/root/usr/share/pear/test/XML_Serializer/tests/req-13564.phpt
--TEST--
XML_Serializer - Req #13564:  bool(false) is converted to empty string
--FILE--
<?php
require 'XML/Serializer.php';

// defaulted to XML_SERIALIZER_OPTION_FALSE_AS_STRING = false
echo 'Default (original) behavior:' . PHP_EOL;
$serializer = new XML_Serializer();
$serializer->setOption('rootName', 'BooleanTest');
if ($serializer->serialize(false)) {
    var_dump($serializer->getSerializedData());
}
if ($serializer->serialize(true)) {
    var_dump($serializer->getSerializedData());
}
echo PHP_EOL;

// modified to XML_SERIALIZER_OPTION_FALSE_AS_STRING = true
echo 'New behavior when enabled:' . PHP_EOL;
$serializer = new XML_Serializer();
$serializer->setOption(XML_SERIALIZER_OPTION_FALSE_AS_STRING, true);
$serializer->setOption('rootName', 'BooleanTest');
if ($serializer->serialize(false)) {
    var_dump($serializer->getSerializedData());
}
if ($serializer->serialize(true)) {
    var_dump($serializer->getSerializedData());
}
?>
--EXPECT--
Default (original) behavior:
string(15) "<BooleanTest />"
string(28) "<BooleanTest>1</BooleanTest>"

New behavior when enabled:
string(28) "<BooleanTest>0</BooleanTest>"
string(28) "<BooleanTest>1</BooleanTest>"