settyp:布尔值转换为字符串(true和false转换为1)


settyp: Boolean to String (true and false are converting to 1)

PHP7:函数settype()将布尔文字truefalse转换为1
为什么false得到1?

$foo1=false;
echo "<br>foo1: ". settype ($foo1,"string");  // foo1: 1
$foo2=true;
echo "<br>foo2: ". settype ($foo2,"string");  // foo2: 1


函数strval()false转换为空字符串,将true转换为1:

$foo1=false;
echo "foo1: ". strval ($foo1);          // foo1: 

$foo2=true;
echo "<br>foo2: ". strval ($foo2);      // foo2: 1

因为您正在输出settype()的返回值,所以NOT您转换的值。由于转换成功。settype返回true,并作为1返回。

php > $foo = true;
php > var_dump(settype($foo, "string"), $foo);
bool(true)
string(1) "1"