如何将$ _GET值转换为变量

时间:2014-08-30 05:39:18

标签: php get-method

在我的页面中,有多个$ _GET值。即

if(isset($_GET["projects"]))
{ .....    }
else if(isset($_GET["research"]))
{ ...... }
else if(isset($_GET["publication"]))
{ ..... }

......高达10个其他地方

我可以缩短这个吗? 我可以在变量中获得这些值{projects,research,publication,..}吗?

6 个答案:

答案 0 :(得分:2)

好的,我想我从你的评论中找出了你想要的东西。让我们看看。

$types = array('projects', 'research', 'publication'); // add as many as you want
$valid = array_intersect_key($_GET, array_flip($types));

if (count($valid) > 1)
    die "More than one category is set, this is invalid.";

if (!$valid)
    die "No category was set, you must choose one.";

foreach ($valid as $type => $value) // just to split this one element array key/value into distinct variables
{
    $value = mysql_real_escape_string($value); // assuming you are using mysql_*
    $sql = "SELECT * FROM table WHERE $type = '$value'";
}

...

答案 1 :(得分:0)

$projects = $_GET["projects"];

或者直接从$_GET使用,这是一个包含所有值的关联数组。

foreach ($_GET as $key => $value){
    if(!empty($value)){
        $type = $key; //if you expect a single item
        $type[] = $key; //if you expect multiple items
    }
}

答案 2 :(得分:0)

是的,您可以在变量中分配这些 -

if(isset($_GET["projects"]))
{
    $value = $_GET['projects'];
}
else if(isset($_GET["research"]))
{
    $value = $_GET['research'];
}
else if(isset($_GET["publication"]))
{
    $value = $_GET['publication'];
}
echo $value;

答案 3 :(得分:0)

我猜你在$_GET期待单个值,例如?projects=foo?research=bar。在那种情况下:

$type  = key($_GET);
$value = $_GET[$type];

echo "$type = $value";

答案 4 :(得分:0)

如果目的是检查表格上的值是否已被回答/填写,您可以使用

if(isset($_GET['project'] || ... || isset($_GET['publication'])
{
 // Insert Code Here
}
else
{
 // Insert Code Here
}

上面的代码假设字段不是文本字段或textareas,如果那些是输入的类型,那么而不是

if(isset($_GET['project']))

使用

if($_GET['project'] != "")

答案 5 :(得分:0)

我并没有完全明白你在说什么,但看起来你正试图在所有$_GET都是真的时执行某些事情。如果是,那么使用下面的代码

if(isset($_GET["projects"]) && isset($_GET["research"]) && isset($_GET["publication"]) )
{ .....    }

希望这有助于你