在我的页面中,有多个 $_GET 值。IE
if(isset($_GET["projects"]))
{ ..... }
else if(isset($_GET["research"]))
{ ...... }
else if(isset($_GET["publication"]))
{ ..... }
...最多 10 个 elseif
我可以缩短这个吗?我可以在变量中获取这些值 {projects,research,publication,..} 吗?
在我的页面中,有多个 $_GET 值。IE
if(isset($_GET["projects"]))
{ ..... }
else if(isset($_GET["research"]))
{ ...... }
else if(isset($_GET["publication"]))
{ ..... }
...最多 10 个 elseif
我可以缩短这个吗?我可以在变量中获取这些值 {projects,research,publication,..} 吗?
好的,我想我从您的评论中知道您想要什么。让我们来看看。
$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'";
}
...
$projects = $_GET["projects"];
或者直接使用 from $_GET
,这是一个包含所有值的关联数组。
foreach ($_GET as $key => $value){
if(!empty($value)){
$type = $key; //if you expect a single item
$type[] = $key; //if you expect multiple items
}
}
是的,您可以在变量中分配这些 -
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;
我猜您期望$_GET
, like ?projects=foo
or中的单个值?research=bar
。在这种情况下:
$type = key($_GET);
$value = $_GET[$type];
echo "$type = $value";
如果目的是检查表单上的值是否已被回答/填写,您可以使用
if(isset($_GET['project'] || ... || isset($_GET['publication'])
{
// Insert Code Here
}
else
{
// Insert Code Here
}
上面的代码假设这些字段不是文本字段或文本区域,如果这些是输入类型,那么而不是
if(isset($_GET['project']))
采用
if($_GET['project'] != "")
我没有完全理解你在说什么,但看起来你正在尝试执行某些事情,而一切$_GET
都是真的。如果是这样,那么使用下面的代码
if(isset($_GET["projects"]) && isset($_GET["research"]) && isset($_GET["publication"]) )
{ ..... }
希望这可以帮助你