有寫過 PHP 與 ASP 的人應該知道,在 ASP 中 header 之後的程式是不會執行的,然而在 PHP 中就不一樣囉!PHP 中 header 之後程式一樣會執行,舉例來說有個程式的邏輯是這樣
判斷是否有輸入資料 → 如果沒有輸入則 header 回首頁 → 如果有輸入則執行撈資料的動作
一般簡單的寫法是用 if else 來判斷,但是執行撈資料的部分非常多的時候(有時候客戶要求處理的功能很多,有可能有數千行程式碼)這個時候再用 if else 來處理雖然也可以,只不過後續接手的工程師可能會很頭大,說不定哪天自己也忘了當初怎麼寫,還要在幾千行程式碼中找到原來是用 if else。小系統沒差,用 if else 即可,如果系統較大,那就不建議用這樣的寫法囉!(話說 if else 用多了也是很吃資源的)
可以用個簡單的方法就讓 PHP header 之後的程式不要執行而直接跳出,那就是 exit();
exit(); 這玩意兒很簡單,這裡舉個簡單的範例
if(資料輸入為空值){
header("location:index.php");
exit();
}
//接著是後面一大堆的程式碼
我們在這範例中只用了一次 exit(); 就可以讓後面一大堆的程式碼全部不執行,直接跳出這支程式,如此一來省去 if else 的寫法,同時也在程式一開始就把是否有資料輸入的判斷處理完成,後面程式不執行可以省下很多的系統資源,試試看吧!