我接下来的案例
switch ($var) {
case 'a':
$model = 'x';
break;
case 'b':
$model = 'y';
break;
// others cases ...
default:
// does actions and calls exit(),
// so i don't have to put return/break after call
// because it is unreachable, but phpstorm don't know it
myfunc();
}
// here inspector says me "variable $model might not be defined"
// but always have $model here
anotherfunc($model);
答案 0 :(得分:2)
最好的方法是在切换之前定义$ module或使用以下注释:
/** @var string $model */
此评论将告诉php-storm $ model已设置且是一个字符串。 您也可以使用 mixed 而不是 string ,它表示它可以是除了它之外的所有内容。
我建议使用评论,因为它对脚本没有性能影响。 另外使用is_set可以解决问题但是正在使用脚本的性能。
无论如何,如果没有其他任何方式可以使用此类评论,并且确定无法设置。