常見誤解:die 釋放記憶體、exit 不釋放。實際上兩者為語言結構別名,編譯器處理完全一致。
zend_language_parser.c 定義 #define T_EXIT 300zend_language_scanner.l 同時匹配 "exit" 與 "die" 回傳 T_EXIT token<ST_IN_SCRIPTING>"exit" { return T_EXIT; }
<ST_IN_SCRIPTING>"die" { return T_EXIT; }
<?php
var_dump(token_get_all("<?php die; exit; ?>"));
// die 與 exit 皆對應 token code 300 (T_EXIT)
?>
die 和 exit 在 PHP 內部處理完全相同,無任何行為差異。implode/join 等別名函式,編譯階段即解析為同一 opcode。