PHP 如果 GET 使用 if isset
PHP if GET using if isset
我是 PHP 的新手,我想知道在 index.php 中显示错误的正确方法,但前提是有错误,否则它什么都不做。
页面 index.php 将表单发送到 login.php 如果有错误,它 return 将错误发送到 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 但我不知道如何使用这个函数它给我错误
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 但更简洁(在我看来)。
文档中 PHP 中的 isset
用于确定变量是否已设置且不为 NULL。参考 here
这就是您如何在您的案例中使用它。
假设 URL 类似于 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所说,这种东西执行时间的差异其实是不用担心的。
希望这对您有所帮助。谢谢。
任何时候您在示例中出现重复,请尝试使用 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']];
?>
我是 PHP 的新手,我想知道在 index.php 中显示错误的正确方法,但前提是有错误,否则它什么都不做。
页面 index.php 将表单发送到 login.php 如果有错误,它 return 将错误发送到 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 但我不知道如何使用这个函数它给我错误
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 但更简洁(在我看来)。
isset
用于确定变量是否已设置且不为 NULL。参考 here
这就是您如何在您的案例中使用它。
假设 URL 类似于 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所说,这种东西执行时间的差异其实是不用担心的。
希望这对您有所帮助。谢谢。
任何时候您在示例中出现重复,请尝试使用 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']];
?>