PHP 单引号 与双引号区别

在PHP中,字符串的定义可使用单引号,也可使用双引号。php

PHP容许咱们在双引号串中直接包含字串变量,双引号串中的变量将被解释并且替换,而单引号串中的内容总被认为是普通字符。例如: 
$foo = 2; 
echo "foo is $foo"; // 打印结果: foo is 2 
echo 'foo is $foo'; // 打印结果: foo is $foo 
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行) 
echo 'foo is $foo\n'; // 打印结果: foo is $foo\n 
sql

 

在SQL语句中  
  
这是会常常遇到的问题,在插入数据库的SQL语句是采用单引号来定义字符串,若是要将一个含有单引号的字符串插入数据库,这个SQL语句就会出错。 
如:$sql="insert into userinfo (username,password) Values('O'Kefee','123456')"    
此时,处理的方法之一是在SQL语句中加入转义符反斜线, 
即:……Values('O\'Kefee',……    
固然也能够使用函数 addslashes(),该函数的功能就是加入转义符, 
即:$s = addslashes("O'Kefee") ……Values('".$s."',……    
还有一种方法是设置php.ini中的magic-quotes选项,打开该选项,则经过表单提交的信息中若是有单引号是,将会自动加上如转义符。所以不用使用其余函数了。 
补充: 这就要从双引号和单引号的做用讲起: 双引号里面的字段会通过编译器解释而后再看成HTML代码输出,可是单引号里面的不须要解释,直接输出。 
数据库

$val ='a';函数

sql =" select * from table where name like '%$val%'"; //将自动替换里面的$val,但若是要用单引号来组织语句则表示为:
sql =' select * from table where name like \'%'.$val.'%\''; //麻烦不少
spa

 

但用单引号代替双引号来包含字符串,这样作会更快一些,由于PHP会在双引号包围的字符串中搜寻变量,单引号则不会。字符串

相关文章
相关标签/搜索