作者JoeHorn (每天都在公司玩OLG)
看板PHP
標題Re: [請益] php跑判斷式的效能?
時間Fri Jan 14 00:33:44 2011
其實 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