為什麼不用魔術引號

  • 可移植性

    寫程式時認為其開啟或並閉都會影響到移植性。可以用 get_magic_quotes_gpc() 來檢查是否開啟,並據此寫程式。

  • 效能

    由於並不是每一段被轉義的資料都要插入資料庫的,若果所有進入 PHP 的資料都被轉義的話,那麼會對程式的執行效率產生一定的影響。在運行時呼叫轉義函數(如 addslashes())更有效率。

    儘管 php.ini-dist 預設開啟了這個選項,但是 php.ini-recommended 預設卻關閉了它,主要是出於效能的考慮。

  • 不便

    由於不是所有資料都需要轉義,在不需要轉義的地方看到轉義的資料就很煩。比如說通過表單傳送信件,結果看到一大堆的 \'。針對這個問題,可以使用 stripslashes() 函數處理。