我正在PHP中构建一个简单的API,其中一个body参数必须是布尔值(根据文档),true
或false
。我正在使用Postman进行测试,似乎我无法做到。每当我发布true
或false
时,它都会将其视为字符串。 0或1也不起作用。我目前正在做的工作是这样的:
if($_POST['authenticate'] == 'true') {
$_POST['authenticate'] = true;
}
但这似乎不对。请指出我正确的方向,因为我现在甚至不确定是否可以POST一个布尔值。
答案 0 :(得分:1)
HTTP POST / GET变量将在PHP($ _POST $ _GET)中转换为字符串关联数组。如果要将值表示为不同的数据类型,则必须进行显式强制转换或重新赋值。
答案 1 :(得分:1)
你可以隐含地考虑这个问题 - 如:
if (isset($_POST["authenticate"]) { ... }
换句话说,如果无论如何authenticate
false
答案 2 :(得分:1)
您可以使用:
$is_authenticate = filter_var($_POST['authenticate'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
或者:
$is_authenticate = $_POST['authenticate']=='true';