在我的代码中,我在switch语句中为一些数据赋值了一个变量。但是该变量在 switch 语句外部调用时不会输出数据。示例代码在这里。
switch (some condition){
case 1:
$userid = $receiver->getMessage();
break;
case 2:
break;
}
echo $userid;
我如何解决这个问题。
当然
,语句内部声明switch
变量在外部可见。
问题是当 switch 内部没有声明时,您可以通过两种方式避免它:
-
$userid = 'default value';
switch
之前 -
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。