可以通过HTTP POST发送布尔值吗?

时间:2018-05-13 22:22:46

标签: php http post

我正在PHP中构建一个简单的API,其中一个body参数必须是布尔值(根据文档),truefalse。我正在使用Postman进行测试,似乎我无法做到。每当我发布truefalse时,它都会将其视为字符串。 0或1也不起作用。我目前正在做的工作是这样的:

if($_POST['authenticate'] == 'true') {
            $_POST['authenticate'] = true;
        }

但这似乎不对。请指出我正确的方向,因为我现在甚至不确定是否可以POST一个布尔值。

3 个答案:

答案 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';