PHP如果使用if isset进行GET

时间:2015-04-08 02:22:53

标签: php mysql get

我是PHP的新手,我想知道在index.php中显示错误的正确方法,但只有在有错误的情况下,否则它什么都不做。

页面index.php将表单发送到login.php,如果有错误,它会将错误返回到index.php,如下所示:

index.php?error=1

然后在索引中我有以下代码,但感觉页面变慢了

<?php
if ($_GET['error']==1){echo "We show error 1 ...";}
if ($_GET['error']==2){echo "We show error 2 ...";}
if ($_GET['error']==3){echo "We show error 3 ...";}

?>

如何以正确的方式修复它?有些使用if isset但我不知道如何使用这个功能它给我错误

3 个答案:

答案 0 :(得分:1)

代码中的任何地方都没有提供

isset,但这也提供了向您介绍switch的机会。

if (isset($_GET['error'])) {
  switch($_GET['error']) {
     case 1:
         echo "We show error 1...";
         break;
     case 2:
         echo "We show error 2...";
         break;
     case 3:
         echo "We show error 3...";
         break;
  }
}   

您可以将它们全部合并到一个开关中,而不是使用不同的if。这类似于使用elseif但更整洁(在我看来)。

答案 1 :(得分:1)

如果您在示例中重复过,请尝试使用function或存储array。虽然你的代码可能不会慢得多,但试试这样的事情:

<?php
// List of errors. If you do it this way, you can keep
// adding errors without adding if/else
$error[1]= "We show error 1 ...";
$error[2]= "We show error 2 ...";
$error[3]= "We show error 3 ...";

// Check if set
if(isset($_GET['error']) && isset($error[$_GET['error']]))
    echo $error[$_GET['error']];
?>

答案 2 :(得分:0)

PHP中的

isset来自文档,用于确定变量是否已设置且不为NULL。请参阅here

这就是你如何在你的情况下使用它。

假设网址类似于index.php?error=1

然后你可以使用:

if( isset($_GET['error']) ){
    if( $_GET['error'] == 1 ) {echo 'Error 1!';}
    elseif( $_GET['error'] == 2 ) {echo 'Error 2!';}
    elseif( $_GET['error'] == 3 ) {echo 'Error 3!';}
}

使用elseif可以在到达任何错误代码后终止执行。例如,如果您有error=2,则不会检查error=3是否会使执行更快。但正如上面提到的Scopey,这种事情的执行时间的差异实际上是你不必担心的事情。

希望这会有所帮助。谢谢。