通过 PHP GET 传递布尔值
这里的问题很简单,但不确定答案。我可以通过 get 传递布尔变量吗?例如:
http://example.com/foo.php?myVar=true
然后我有
$hopefullyBool = $_GET['myVar'];
是布尔值还是字符串?我的假设是,这是一根绳子,但有人能告诉我吗?谢谢$hopefullyBool
这里的问题很简单,但不确定答案。我可以通过 get 传递布尔变量吗?例如:
http://example.com/foo.php?myVar=true
然后我有
$hopefullyBool = $_GET['myVar'];
是布尔值还是字符串?我的假设是,这是一根绳子,但有人能告诉我吗?谢谢$hopefullyBool
所有 GET 参数都是 PHP 中的字符串(或字符串数组)。使用filter_var(或filter_input)和:FILTER_VALIDATE_BOOLEAN
返回 TRUE 表示“1”、“true”、“on”和“yes”。否则返回 FALSE。
如果设置了FILTER_NULL_ON_FAILURE,则仅对“0”、“false”、“off”、“no”和 “”返回 FALSE,对所有非布尔值返回 NULL。
$hopefullyBool = filter_var($_GET['myVar'], FILTER_VALIDATE_BOOLEAN);
对于可以是数组的 INPUT 变量,有filter_var_array和filter_input_array。
获取布尔类型的另一种方法,将计算结果为或喜欢或:true
false
0
1
http://example.com/foo.php?myVar=0
http://example.com/foo.php?myVar=1
然后转换为布尔值:
$hopefullyBool = (bool)$_GET['myVar'];
如果要传递字符串或另一种方式:true
false
$hopefullyBool = $_GET['myVar'] == 'true' ? true : false;
但我想说的是,这是为了这个。filter_var
FILTER_VALIDATE_BOOLEAN
如果要避免 if 语句:
filter_var('true', FILTER_VALIDATE_BOOLEAN);
//bool(true)
filter_var('false', FILTER_VALIDATE_BOOLEAN);
//bool(false)