在我的代码中,我在switch语句中有一些变量赋值。但是当变量在switch语句之外调用时,该变量不输出数据。示例代码在这里。
switch (some condition){
case 1:
$userid = $receiver->getMessage();
break;
case 2:
break;
}
echo $userid;
我如何解决这个问题。
答案 0 :(得分:1)
当然,在switch
语句中声明的变量在外部可见。
问题是当没有在交换机内声明时,你可以通过两种方式避免它:
$userid = 'default value';
switch
在echo isset($userid) ? $userid : 'default value';
之后switch
。默认值可以是任何内容,如果没有,则使用空字符串。
答案 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是否也已实际设置。