从PHP中的Switch语句获取可变数据

时间:2017-11-03 08:20:09

标签: php

在我的代码中,我在switch语句中有一些变量赋值。但是当变量在switch语句之外调用时,该变量不输出数据。示例代码在这里。

switch (some condition){
   case 1:
   $userid = $receiver->getMessage();
   break;
   case 2:
   break;
 }

 echo $userid;

我如何解决这个问题。

3 个答案:

答案 0 :(得分:1)

当然,在switch语句中声明的变量在外部可见。

问题是当没有在交换机内声明时,你可以通过两种方式避免它:

    $userid = 'default value';
    之前
  1. switchecho isset($userid) ? $userid : 'default value';之后
  2. switch
  3. 默认值可以是任何内容,如果没有,则使用空字符串。

答案 1 :(得分:0)

可能的方法是在调用switch语句之前声明变量。

$userid = "";
switch (some condition){
   case 1:
   $userid = $receiver->getMessage();
   break;
   case 2:
   break;
 }

 echo $userid;

答案 2 :(得分:-1)

您在案例2 默认情况下没有做任何事情。如果你这样构造它,它应该工作。

switch ($condition) {
  case 1:
     $userId = $receiver->getMessage();
  break;
  case 2:
     $userId = $receiver->someOtherMessage();
  break;
  default:
     $userId = null;
  break;
}

在不同的点上,您可以验证userId是否也已实际设置。