为什么不用魔术引号
-
可移植性
编程时认为其打开或并闭都会影响到移植性。可以用
get_magic_quotes_gpc() 来检查是否打开,并据此编程。
-
性能
由于并不是每一段被转义的数据都要插入数据库的,如果所有进入
PHP 的数据都被转义的话,那么会对程序的执行效率产生一定的影响。在运行时调用转义函数(如
addslashes())更有效率。
尽管 php.ini-dist 默认打开了这个选项,但是
php.ini-recommended 默认却关闭了它,主要是出于性能的考虑。
-
不便
由于不是所有数据都需要转义,在不需要转义的地方看到转义的数据就很烦。比如说通过表单发送邮件,结果看到一大堆的 \'。针对这个问题,可以使用
stripslashes() 函数处理。