看板 PHP 關於我們 聯絡資訊
其實 switch 跟 if 主要差別還是在維護、除錯的方便性。 若是有興趣的話,下載 PHP 的原始碼解開看... 追蹤 PHP 5.3.5: 1. Zend/zend_language_scanner.l 可以看到 <ST_IN_SCRIPTING>"if" { return T_IF; } <ST_IN_SCRIPTING>"switch" { return T_SWITCH; } 2. Zend/zend_language_parser.y 可以看到 | T_IF '(' expr ')' { zend_do_if_cond(&$3, &$4 TSRMLS_CC); } statement { zend_do_if_after_statement(&$4, 1 TSRMLS_CC); } elseif_list else_single { zend_do_if_end(TSRMLS_C); } | T_SWITCH '(' expr ')' { zend_do_switch_cond(&$3 TSRMLS_CC); } switch_case_list { zend_do_switch_end(&$6 TSRMLS_CC); } 3. Zend/zend_compile.c 可以看到 void zend_do_if_cond(...) void zend_do_if_after_statement(...) void zend_do_if_end(...) void zend_do_switch_cond(...) void zend_do_switch_end(...) 真如此講究的話,可以追蹤 === 跟 == ,很有趣。 :p -- ▄▆▇▍ ▆ ▇ ▏▎▍▌▋▊▉ φkaishin ┼── █▏── ▁▁▍▁ ─────── JoeHorn┬┼ ▄ꈠ ▂▄▎ ▄ ▎▄▅ └┼ ┼┐ ◢▂ ▄▆ ┼┴ -▂▄-──-─┼ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.129.239
davidou:其實 看不太懂... 01/14 15:17
ROCKIT:我也沒有看很懂...但是最近也在想這個問題^^ 01/15 02:30
KC73:最近很愛用 === 的 ... 01/15 09:57