有没有办法忽略isset和显示结果

时间:2015-07-27 13:34:23

标签: php html html5

可能是一件容易但却无法理解的事情。

我有两页都通向第三页。 在第三页我有

if(isset($_GET['something']) && isset($_GET['somethingelse']))
{
     $something = $_GET['something'];
     $somethingelse = $_GET['somethingelse'];
     //more stuff here
}

page1.phppage3.php,其中一个网址就像

<a href="page3.php?something='.$something.'&somethingelse='.$somethingelse.'">Click</a>

并且page3.php按预期显示所有内容。问题是从page2.phppage3.php。那里的链接就像

<a href="page3.php?something='.$something.'">Click</a>

所以page3.php没有正确加载,因为检查somethingelse ..我怎么能忽略isset而不删除它因为我需要$somethingelse的值,但只有当它来自page1.php。我在这里想不到合适的解决办法。

2 个答案:

答案 0 :(得分:2)

将其分开:

if(isset($_GET['something']))
{
     $something = $_GET['something'];
     //more stuff here
}
if(isset($_GET['somethingelse']))
{
     $somethingelse = $_GET['somethingelse'];
     //some more stuff here
}

因为,somethingelse未设置时$something = $_GET['something']不会发生

答案 1 :(得分:2)

你不能只忽略if语句,这是流控制的全部要点。如果它传递了if语句,你只想做某事。如果你只想在$ _GET变量中定义$ somethingelse,并且如果$ _GET ['somethingelse']为空则允许脚本继续执行,那么:

if(isset($_GET['something'])) {
     $something = $_GET['something'];
     $somethingelse = $_GET['somethingelse'] ?: false;
     //more stuff here
}