有几种方法可以做到这一点。首先,我们可以使用 PHP 内置的 (boolean) 方法,它将字符串值转换为布尔值:
$hopefullyBool = (boolean)$_GET['myVar'];
这将产生一个布尔值true 或false,具体取决于$_GET['myVar'] 中字符串的值。
从 v5.2.1 开始,我们还可以使用json_decode() 来确定布尔值:
$hopefullyBool = json_decode($_GET['myVar]);
json_decode() 方法将 JSON 对象(它是一个字符串)解析为 PHP 变量,并考虑了类型转换。因此,来自 URL 参数的字符串 'true' 将被强制转换为布尔值 true。
您可以同时使用上述两种方法,使用:
$hopefullyBool = (boolean)json_decode($_GET['myVar]);
为了减少在 URL 参数中传递的大写字符(例如 ?myVar=True 或 ?myVar=FALSE),您应该使用 strtolower() 方法,该方法会将字符串转换为所有小写字母:
$hopefullyBool = (boolean)json_decode(strtolower($_GET['myVar]));
最后,如果 URL 的查询字符串中不存在该参数,我们将回退到 false,否则 PHP 将抛出未定义索引通知。为此,我们可以使用isset() 方法:
$hopefullyBool = false;
if ( isset($_GET['myVar']) ) {
$hopefullyBool = (boolean)json_decode(strtolower($_GET['myVar]));
}
为了缩短此时间,您可以使用如下条件语句启动 $hopefullyBool:
$hopefullyBool = isset($_GET['myVar']) && (boolean)json_decode(strtolower($_GET['myVar']));