Phi*_*ton 5 php scope switch-statement
在PHP中,如何在switch语句中处理变量作用域?
例如,采用这个假设的例子:
$someVariable = 0;
switch($something) {
case 1:
$someVariable = 1;
break;
case 2:
$someVariable = 2;
break;
}
echo $someVariable;
Run Code Online (Sandbox Code Playgroud)
这会打印0还是1/2?
变量在整个代码部分中都是相同的:PHP中没有"每个块"的变量范围.
所以,如果$something
是1
或2
,让你在的一个进入case
的switch
,你的代码将输出1或2.
另一方面,如果$something
不是1
也不是2
(例如,如果它被认为是0
,你发布的代码就是这种情况,因为它没有被初始化为任何东西),你将不会进入任何一个case
区块; 并输出代码0
.
PHP只有一个全局和函数/方法范围.所以$someVariable
在switch
块内部引用与外部相同的变量.
但由于$something
未定义(至少不在您提供的代码中),访问它会引发一个未定义的变量通知,没有一个匹配(未定义的变量相等null
),$someVariable
将保持不变并将0
打印出来.