我有一个布尔变量,我想转换成一个字符串:

$res = true;

我需要转换值的格式为:“真”“假”,而不是“0”“1”

$converted_res = "true";
$converted_res = "false";

我试过了:

$converted_res = string($res);
$converted_res = String($res);

但它告诉我string和string不是被识别的函数。 如何将这个布尔值转换为PHP中“真”或“假”格式的字符串?


当前回答

这也适用于任何类型的价值:

$a = true;

echo $a                     // outputs:   1
echo value_To_String( $a )  // outputs:   true

代码:

function valueToString( $value ){ 
    return ( !is_bool( $value ) ?  $value : ($value ? 'true' : 'false' )  ); 
}

其他回答

只是想更新一下,在PHP >= 5.50中,你可以使用boolval()来做同样的事情

参考这里。

如何转换为整数,然后到字符串?

$ php -a
Interactive mode enabled

php > $a = true;
php > $b = false;
php > $c = (string)(int)$a;
php > $d = (string)(int)$b;
php > var_dump($c);
string(1) "1"
php > var_dump($d);
string(1) "0"
php >

如果直接将布尔值转换为字符串会发生什么?

$ php -a
Interactive mode enabled

php > $a = true;
php > $b = false;
php > $c = (string)$a;
php > $d = (string)$b;
php > var_dump($c);
string(1) "1"
php > var_dump($d);
string(0) ""
php >

将false转换为字符串将产生一个空字符串""。

对于我来说,我想要一个字符串表示,除非它为空,在这种情况下,我希望它保持为空。

var_export的问题是它将null转换为字符串" null ",也将空字符串转换为" " ",这是不可取的。我找不到简单的解决办法。

这是我最终使用的代码:

if (is_bool($val)) $val ? $val = "true" : $val = "false";
else if ($val !== null) $val = (string)$val;

如果你喜欢,也可以简单地添加一个函数。

$converted_res = isset ( $res ) ? ( $res ? 'true' : 'false' ) : 'false';

最简单的解决方案:

$converted_res = $res ?'true': 'false';