php - 如何在查询绑定中将布尔值转换为字符串?
问题描述
在存储库中,我构建了一个查询并且我想绑定值,但我需要将 $isAllowed 布尔值转换为字符串('true'、'false' 或 'null')。如何以正确的方式做到这一点?
':isAllowed' => $isAllowed,
解决方案
您可以分配一个新变量或使用现有变量,如下所示:
$isAllowed_str = $isAllowedBool ? 'true' : 'false';
对于 NULL 值,它应该被认为是 false:
转换为 bool 时,以下值被视为 false:
布尔值 false 本身 整数 0(零) 浮点数 0.0 和 -0.0(零) 空字符串和字符串“0” 具有零元素的数组 特殊类型 NULL(包括未设置的变量) 从无属性的空元素创建的 SimpleXML 对象,即既没有子元素也没有属性的元素。
来源:https ://www.php.net/manual/en/language.types.boolean.php
如果您需要分隔空值,您可以在将 bool 转换为 str 之前使用 if 语句进行检查:
if(is_null(isAllowedBool)) {
$isAllowed_str = "NULL";
}
else {
$isAllowed_str = $isAllowedBool ? 'true' : 'false';
}