在HTTP中,您可以以uri?bool1&bool2
这些以$_GET
$_GET['bool1'] === '' && $_GET['bool2'] === ''
中
使用isset
可以轻松阅读这些值,但使用http_build_query
撰写生成的网址时,uri?bool1=&bool2=
我想知道是否有更简洁的方法在PHP中执行此操作而无需编写自己的http_build_query
答案 0 :(得分:0)
您的第一个示例可能始终被视为public/javascript.js
。
参数的值不存在参数确定它是否是布尔值。因此boolean = false
与bool1&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
作为字符串和数组处理,没有bool
,int
,float
或任何其他类型,只有string
的{{1}}和array
。
当您将空值传递给string
参数时,无论是否有GET
,该值都将为空字符串。
您正在查看的值为percent-encoded。