在PHP中,如何在switch語句中處理變量作用域?PHP switch語句變量範圍
舉例來說,利用這個假設的例子:
$someVariable = 0;
switch($something) {
case 1:
$someVariable = 1;
break;
case 2:
$someVariable = 2;
break;
}
echo $someVariable;
這會打印0或1/2?
在PHP中,如何在switch語句中處理變量作用域?PHP switch語句變量範圍
舉例來說,利用這個假設的例子:
$someVariable = 0;
switch($something) {
case 1:
$someVariable = 1;
break;
case 2:
$someVariable = 2;
break;
}
echo $someVariable;
這會打印0或1/2?
該變量在您的代碼的整個部分中都是相同的:PHP中沒有可變範圍「per block」。
所以,如果$something
是1
或2
,讓你在switch
的case
的一個輸入,你的代碼將輸出1或2
在另一方面,如果$something
不1
也不2
(例如,如果它被認爲是0
,這是你發佈的代碼的情況,因爲它沒有被初始化爲任何東西),你不會輸入任何case
塊;代碼將輸出0
。
即使PHP具有詞法範圍,'switch_'塊中仍然可以訪問'$ someVariable'。 – 2010-02-21 15:05:48
它會打印1或2.PHP中的變量具有整個功能的範圍。
如果您在switch語句中更改$someVariable
的值,將打印1或2,如果您不更改,則打印0。
PHP只有一個global and function/method scope。所以$someVariable
裏面的switch
塊指的是和外面一樣的變量。
但由於$something
沒有定義(至少在你提供的代碼),訪問它提出了一個未定義變量通知,沒有任何一個實例相匹配(未定義變量等於null
),$someVariable
將保持不變,並0
會打印出來。
你爲什麼不試試呢? – Gumbo 2010-02-21 15:06:02