在 PHP 中从 Switch 语句外部获取变量数据



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

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

我如何解决这个问题。

当然

,语句内部声明switch变量在外部可见。

问题是当 switch 内部没有声明时,您可以通过两种方式避免它:

  1. $userid = 'default value'; switch
    之前
  2. echo isset($userid) ? $userid : 'default value'; switch后.

默认值可以是任何值,如果没有,请使用空字符串。

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

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

你没有对大小写 2 默认值做任何事情。如果你像这样构建它,那么它应该可以工作。

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

在不同的时间点,您可以验证是否也确实设置了 userId。

最新更新