我想知道用户访问了什么网址。例如,如果用户访问过:
的index.php?注册
它会回显'1'。
if (isset($_GET))
{
switch ($_GET)
{
case "register":
echo 1;
break;
}
}
但它没有做任何事情,为什么?你如何得到第一个GET元素的名称?
答案 0 :(得分:4)
$_GET
是一个数组。您需要将该switch语句放在foreach循环中:
foreach ($_GET as $k => $v) {
switch ($k) {
case 'register':
echo 1;
break;
}
}
此外,$_GET
超级全球总是设置 - 不需要if (isset($_GET)) {
答案 1 :(得分:3)
您可以使用array_keys()
获取每个$ _GET的密钥,然后使用0 index
确定您要对第一个密钥执行的操作:
if($_GET){
$keys = array_keys($_GET);
switch ($keys[0]){
case "register":
echo 1;
break;
}
}
答案 2 :(得分:1)
$_GET
是一个超全局数组。它总是被设置,并且总是一个数组。
如果你知道register
总是是第一个GET元素,那么你可以这样做:
reset($_GET);
switch (key($_GET)){
case "register":
echo 1;
break;
}
key()
的文档:http://php.net/key
答案 3 :(得分:-3)
$ _ GET是一个关联数组,所以它的结构是key=value
个元素
您可以使用此网址:index.php?page=register
,并使用以下代码:
if (isset($_GET['page']))
{
switch ($_GET['page'])
{
case "register":
echo 1;
break;
}
}
或使用此网址index.php?register
使用以下代码:
foreach ($_GET as $key => $value) {
switch ($key) {
case 'register':
echo 1;
break;
}
}