在Ubuntu 14上安裝PHP 5.5.9後,我發現了一個奇怪的行爲,使用switch語句和PHP_OS
常量。在php開關中使用常量php 5.5.9
我認爲在PHP 5.5.9中switch語句也檢查相同類型(===)?
或者它是一個PHP的錯誤?
echo PHP_OS; // Linux
$os = PHP_OS;
switch (PHP_OS) {
case "WINNT":
echo 'Windows';
break;
case "Linux":
echo 'Linux';
break;
default:
echo 'Default';
break;
}
// Default
switch ((string) PHP_OS) {
case "WINNT":
echo 'Windows';
break;
case "Linux":
echo 'Linux';
break;
default:
echo 'Default';
break;
}
// Default
switch ($os) {
case "WINNT":
echo 'Windows';
break;
case "Linux":
echo 'Linux';
break;
default:
echo 'Default';
break;
}
// Linux
什麼是 「怪異行爲」? – 2014-09-03 13:22:58
在以前版本的php'switch(PHP_OS)'中會返回「選擇Linux」 – 2014-09-03 13:23:58
@AsaCarter如果用'switch((string)PHP_OS)'替換'switch(PHP_OS)',會發生什麼? – Sugar 2014-09-03 13:30:04