PHP开关大小写语句。如何管理默认值

PHP开关大小写语句。如何管理默认值,php,html,Php,Html,这是我的switch case脚本: switch ($_GET['page']) { case '?users': ..... default: echo 'Welcome'; } 此脚本工作正常,但当我第一次加载页面时,他返回错误: Notice: Undefined index: page in 我知道为什么,因为脚本不知道值是什么。如何设置默认值并避免错误?使用isset():已编辑 if(isset($_GET['page'])){ switch ($_GET['p

这是我的switch case脚本:

switch ($_GET['page'])
{
case '?users':
.....
default: echo 'Welcome';

   }
此脚本工作正常,但当我第一次加载页面时,他返回错误:

Notice: Undefined index: page in
我知道为什么,因为脚本不知道值是什么。如何设置默认值并避免错误?

使用
isset()
已编辑

if(isset($_GET['page'])){
    switch ($_GET['page'])
    {
    case 'users':
    .....
    default: echo 'Welcome';

       }
}
使用已编辑的
isset()

if(isset($_GET['page'])){
    switch ($_GET['page'])
    {
    case 'users':
    .....
    default: echo 'Welcome';

       }
}
1a)检查索引
页面是否存在

if( array_key_exists('page', $_GET) ) {

}
1b)设置默认值

$_GET['page'] = array_key_exists('page', $_GET) ? $_GET['page'] : '';
2)您的案例陈述不正确

case 'users' :
 //...
break;
3)将所有代码放在一起

$_GET['page'] = array_key_exists('page', $_GET) ? $_GET['page'] : '';
  switch ($_GET['page']) {
      case 'users':
              //...
      break;
      default: 
              echo 'Welcome';
      break;
   }
提示
  • 确保你
    break案例块
  • 在盲目使用索引之前,请始终检查索引是否存在
1a)检查索引
页面是否存在

if( array_key_exists('page', $_GET) ) {

}
1b)设置默认值

$_GET['page'] = array_key_exists('page', $_GET) ? $_GET['page'] : '';
2)您的案例陈述不正确

case 'users' :
 //...
break;
3)将所有代码放在一起

$_GET['page'] = array_key_exists('page', $_GET) ? $_GET['page'] : '';
  switch ($_GET['page']) {
      case 'users':
              //...
      break;
      default: 
              echo 'Welcome';
      break;
   }
提示
  • 确保你
    break案例块
  • 在盲目使用索引之前,请始终检查索引是否存在

在开关盒之前
$page=isset($\u GET['page'])$_获取['page']:''
Debflav的意思是,对于键
页面
,数组中没有元素
$\u GET
,因此您需要确保其中有一些内容,甚至是一个空字符串。另外:对于
whater.php?page=users
$\u GET['page']
值将是
users
而不是
?users
求解。感谢开关(isset($\u GET['page'])?$\u GET['page']:''){@FranciscoPresencia感谢更具体一些。我有时很懒:在开关盒之前
$page=isset($\u GET['page'])?$\u GET['page']:“”;
Debflav的意思是数组中没有用于键
页面
的元素
$\u GET
,因此您需要确保有一些内容,甚至是空字符串。另外:对于
whater.php?page=users
$\u GET['page']
的值将是
users
而不是
?users
求解。谢谢(isset($_GET['page'])?$_GET['page']:''){@FranciscoPresencia多亏了更具体一点。我有时很懒:
中的D-1如果var存在并且值不是NULL,则返回TRUE,否则返回FALSE。
你怎么能
FALSE=='?用户“
?@FranciscoPresencia我正在编辑为什么要进行向下投票。因为你以前的代码明显错误(你不应该切换真/假)。现在我取消了向下投票。case语句仍然不正确,除非查询字符串是
index.php?page=?users
-如果是,这将是不合逻辑的/奇怪的。-如果var存在,
中的-1返回TRUE,如果var的值不是NULL,否则返回FALSE。
你怎么能
FALSE=='?users'
?@Francisco Presencia I was编辑这就是为什么要投否决票。因为您以前的代码明显错误(您不应该切换真/假)现在我取消了否决票。case语句仍然是不正确的,除非查询字符串是
index.php?page=?users
-如果是的话,这将是不合逻辑的/奇怪的。
default
是否也需要
中断;
?这对我来说是新闻。嗯,也许我从来没有放过它,因为它总是最后一个case,所以没问题。
default
只在最后一个案例中才需要休息-但我这样做主要是一种习惯,而且读起来比较容易,因为每个案例都是统一的(案例->新行(缩进)->新行
休息
)。Idk…:PI也把最后一个
休息
。事实上,我认为他是可选的。+1详细回答。谢谢@Debflav:)(最后一种情况不需要中断&默认情况并不总是最后一种情况-因为奇怪/不合逻辑的代码编写)
default
是否也需要
休息;
?这对我来说是新闻。好吧,也许我从来没有放过它,因为它总是最后一个案例,所以没关系。
default
不需要休息,只要它是最后一个案例,但我这样做主要是一种习惯,而且更容易阅读,因为每个案例都是统一的(case->new line(w/indent)->new line
break
).Idk…:PI也把最后一个
break
放进去。事实上,我认为他是可选的。+1用于详细的回答。谢谢@Debflav:)(最后一个案例不需要中断&默认值并不总是最后一个案例-因为奇怪/不合逻辑的代码编写)