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

$res = true;

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

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

我试过了:

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

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


当前回答

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

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

这是我最终使用的代码:

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

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

其他回答

函数var_export返回一个变量的字符串表示形式,所以你可以这样做:

var_export($res, true);

第二个参数告诉函数返回字符串而不是回显它。

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

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

这是我最终使用的代码:

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

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

为什么不这样做呢?:

if ($res) {
    $converted_res = "true";
}
else {
    $converted_res = "false";
}

Boolval()适用于复杂的表,其中声明变量和添加循环和过滤器都不起作用。例子:

$result[$row['name'] . "</td><td>" . (boolval($row['special_case']) ? 'True' : 'False') . "</td><td>" . $row['more_fields'] = $tmp

其中$tmp是用于转置其他数据的键。在这里,我想表显示“是”为1和0,所以使用(boolval($row['special_case']) ?“是”:)。

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

参考这里。