php中单引号和双引号的区别

作者:掠影
最后编辑时间:2017-04-25 20:27:58
浏览次数:1700



    在PHP中,单引号和双引号往往都用于表示字符和字符串,然而很多人都将其作为同样的标记,从而混杂使用,殊不知,这种习惯可能会引起极大的隐患问题。

     对于单引号而言,其作用在于将所括的字符串视为‘转义的’,即在使用时,编译器会根据转义字符处理其中的内容,比如进行非法字符过滤时,会涉及诸如\'这种转义字符。利用var_dump打印出来的结果,单引号为一个操作符,相反,双引号为两个独立的操作符,因此进行filter时,需用单引号,如下:

var_dump("\'",'\'');// 前者为双引号,后者为单引号,对比同一个转义字符
string(2) "\'" string(1) "'"    

     对于双引号而言,主要用于原生字符串,即其中不包含转义字符的情况,例如平时所用的数组成员选取等。

     故而利用单引号可一定程度上避免注入问题,通常表现在将用户数据直接获取时,可有效防止其输入中插有非法(sql代码)字符串的情况;

     同时,如字符串嵌入变量,如"{$id}"中,id变量会被自动翻译成其所对应的值,故而例如链接MySQL时,对LIKE操作符作字符串拼接,需采用双引号,如下

'SELECT id FROM test WHERE name LIKE %{$name}% ; '
单引号,结果为:SELECT id FROM test WHERE name LIKE %{$name}% ;
"SELECT id FROM test WHERE name LIKE %{$name}% ; "
双引号,结果为:SELECT id FROM test WHERE name LIKE %alexfu% ;

     综上所述,单引号使用范围较广,双引号不处理其中值,宜根据具体情况具体使用。

取消

感谢您的支持,我会继续努力的!关闭

扫码支持
大家有钱的捧个钱场,没钱的捧个人场233333

打开支付宝扫一扫,即可进行扫码打赏哦

分享到: QQ空间 更多



评论区

  • 180.160*****: 2017-04-25
    双引号使用条件还是比较局限啊,不如单引号广