作者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
1F:推 davidou:其实 看不太懂... 01/14 15:17
2F:推 ROCKIT:我也没有看很懂...但是最近也在想这个问题^^ 01/15 02:30
3F:→ KC73:最近很爱用 === 的 ... 01/15 09:57