0

我只是问是否可以从 $_GET 获取密钥...

我想做一个 switch 语句,比如

switch($_GET key)  //here I don't know
{
   case "login": .... break;   //if "login" key exists in $_GET then show page.
   ....
}

对不起白痴问题

4

2 回答 2

6

array_keys();将从传递的参数返回一个 assoc 键数组。

$arrKeys = array_keys($_GET);//$arrKeys will now contain all keys of $_GET (as an array)

看看:array_keys()

如果您已经知道键,并且想要从键中获取特定元素的值,请执行以下操作:

echo $_GET['myKey'];//which will print the value of the 'myKey' element
于 2012-08-11T12:18:41.837 回答
6

您可以使用简单的 for 循环来迭代数组和键。 $_GET只不过是一个关联数组(它使用字符串作为数组索引)。

使用foreach($_GET as $key => $value)php 将在对应的数组 key in$key和数组 value in 中拆分出数组中的每个条目$value

foreach($_GET as $key => $value)
     {
     if($key === 'mykey')
         {
         // Do things with this key
         }
     if($key === 'login')
         {
         // Do login stuff etc...
         if($value === 'adminarea')
              {
              // login to adminarea
              }
         if($value === 'forum')
              {
              // Login to forum
              }
         }
     }

您也可以使用array_key_exists. 这将检查某个是否存在,如果存在,您可以对其进行处理。

if(array_key_exists('myKey', $_GET) && $value = $_GET['myKey']) {
    // do stuff with $value
}

但这有点麻烦。我个人更喜欢将此函数用于简单的数组。

function array_get($array, $key, $default = null) 
{
    return (is_array($array) && array_key_exists($key, $array) ? $array[$key] : $default);
}

然后你可以做

if($value = array_get($_GET, 'myKey')) {
    // do stuff with mykey
}

这更清洁并且具有描述性。它总是返回 null 作为默认值,或者您可以设置自己的默认值。

 $music_intensity = array_get($_GET, 'intensity', 11);

如果没有定义值,那么它将11作为值返回。$music_intensity$_GET

于 2012-08-11T12:24:27.230 回答