我在某处读到密钥为NULL
且值为parameter
。
我试过$_GET[NULL]
,但似乎没有用。
这是我的代码:
if ($_GET[NULL] == "parameter") {
echo 'Invoked parameter.';
} else {
echo '..';
}
它只打印出..
,这意味着我做得不对。有人可以告诉我正确的方式。
答案 0 :(得分:3)
PHP中没有无密钥URL参数。 ?parameter
相当于$_GET['parameter']
被设置为空字符串。
尝试使用http://link.com/?parameter之类的网址var_dump($_GET)
,看看你得到了什么。
看起来应该是这样的:
array (size=1)
'parameter' => string '' (length=0)
因此,您可以根据应用需求以多种方式对其进行测试:
if (isset($_GET['parameter'])) {
// do something
} else {
// do something else
}
或
// Only recommended if you're 100% sure that 'parameter' will always be in the URL.
// Otherwise this will throw an undefined index error. isset() is a more reliable test.
if ($_GET['parameter'] === '') {
// do something
} else {
// do something else
}
答案 1 :(得分:0)
$_GET
是一个超级全球assoc
数组,其中包含parameter
=> it's value
对。因此,parameter
是数组的关键。
例如,如果您的网址是这样的:myweb.com/?page=load&do=magic
而不是$_GET
:
$_GET(
[page] => load
[do] => magic
)
如果您只是想测试一下,如果您将URL作为参数parameter
,则应该执行以下操作:
if (isset($_GET['parameter'])
echo "Here I am!";
答案 2 :(得分:0)
你也可以像这样获得整个request_url
echo $_SERVER['REQUEST_URI'];
要在?
之后获取零件:
echo explode('?', $_SERVER['REQUEST_URI'])[1];
答案 3 :(得分:0)
您可以通过array_keys()
:
$param = array_keys($_GET)[0];
这将为您提供第一个查询字符串参数的名称,无论它是否具有值。
您还可以获得所有参数,而不是这样的值:
$empty = [];
foreach($_GET as $key => $value)
if(strlen($value) === 0) $empty[] = $key;
print_r($empty);
答案 4 :(得分:0)
您可以使用
获取以?
开头的网址部分
$_SERVER['QUERY_STRING']