Nil*_*ert 13 php boolean get type-conversion
在PHP中,如果URL中有"var = true"之类的URL,URL中的"true"和"false"是否会转换为布尔变量,或者它们是否等于文本"true"或"false" "?例如,如果url中包含"var = false":
if ($_GET['var'] == false) { ... }
Run Code Online (Sandbox Code Playgroud)
工作?或者变量总是为真,因为它中有文本?
Art*_*cto 17
不,$_GET将始终只包含字符串.
但是,您可以过滤它以获得布尔值.
FILTER_VALIDATE_BOOLEAN:
返回TRUE了"1","true","on"和"yes".FALSE否则返回.如果FILTER_NULL_ON_FAILURE设置,FALSE只为返回"0","false","off","no",和"",并NULL返回所有非布尔值.
例:
$value = filter_input(INPUT_GET, "varname", FILTER_VALIDATE_BOOLEAN,
array("flags" => FILTER_NULL_ON_FAILURE));
Run Code Online (Sandbox Code Playgroud)
Bol*_*ock 15
它们作为字符串传递,因此除非它们是其中之一,否则它们总是很简洁,而是将其评估为false:
'''0'为了让我的生活更轻松,我只需将布尔GET变量作为1或传递,0并将它们验证为其中一个值,或者适当地确定默认值:
// Default value of false
$var = false;
if (isset($_GET['var']))
{
if ($_GET['var'] === '1' || $_GET['var'] === '0')
{
$var = (bool) $_GET['var'];
}
}
Run Code Online (Sandbox Code Playgroud)