在PHP中清除布尔http查询值

时间:2015-12-17 19:59:16

标签: php

在HTTP中,您可以以uri?bool1&bool2

的形式发送布尔值

这些以$_GET

的形式显示在PHP $_GET['bool1'] === '' && $_GET['bool2'] === ''

使用isset可以轻松阅读这些值,但使用http_build_query撰写生成的网址时,uri?bool1=&bool2=

我想知道是否有更简洁的方法在PHP中执行此操作而无需编写自己的http_build_query

2 个答案:

答案 0 :(得分:0)

您的第一个示例可能始终被视为public/javascript.js

参数的值不存在参数确定它是否是布尔值。因此boolean = falsebool1&bool2相同,这实际上是说两个值都是false,因为在PHP中将空值评估为false。

总是传递参数和值可能会更好,而不是假设缺少参数等于false。例如,我会发送bool1=&bool2=并将1视为true,将0视为false。这也是PHP默认解释这些值的方式。

如果您不想总是发送参数,当其布尔值为false时,另一种方法是更改​​您检索值的方式。这通常使用if语句和许多框架的内置功能来完成。例如:

bool1=1&bool2=0

答案 1 :(得分:-1)

HTTP协议没有类型。通过GET / POST / COOKIE传递数据时,所有参数都是由接收语言解析的字符串,在您的情况下,这是PHP。

PHP仅将GET / POST / COOKIE作为字符串和数组处理,没有boolintfloat或任何其他类型,只有string的{​​{1}}和array

当您将空值传递给string参数时,无论是否有GET,该值都将为空字符串。

您正在查看的值为percent-encoded