PHP中单引号与双引号的区别分析
程序员文章站
2022-08-09 11:01:21
①转义的字符不同
单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,php懂得更多特殊字符串的...
①转义的字符不同
单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,php懂得更多特殊字符串的转义序列。
<?php $str1 = '\',\\,\r\n\t\v\$\"'; echo $str1,'<br />'; $str2 = "\",\\,a\r\n\tb\v\$\'"; echo $str2,'<br />'; ?>
②对变量的解析不同
单引号字符串中出现的变量不会被变量值替代。即php不会解析单引号中的变量,而是将变量名原样输出。双引号字符串最重要的一点是其中的变量名会被变量值替代,即可以解析双引号中包含的变量。
<?php $age = 20; $str1 = 'i am $age years old'; $str2 = "i am $age years old"; echo $str1,'<br />'; // i am $age years old echo $str2,'<br />'; // i am 20 years old; ?>
③解析速度不同
单引号不需要考虑变量的解析,速度比双引号快.推荐用单引号.有的时候双引号也比较好用,比如在拼凑sql 语句
反斜杠
//使用单引号 echo ' this \n is \r the blog \t of \\ zhoumanhe \\'; //上面使用单引号输出的值是 this \n is \r the blog \t of \ zhoumanhe \ echo ' '; echo " "; //使用双引号 echo "this \n is \r the blog \t of \\ zhoumanhe \\"; //上面使用双引号输出的值是 this is the blog of \ zhoumanhe \
使用sql
假设查询条件中使用的是常量,例如:
select * from abc_table where user_name='abc';
sql语句可以写成:
sqlstr = “select * from abc_table where user _name= ‘abc'” ;
假设查询条件中使用的是变量,例如:
$user_name = $_request['user_name']; //字符串变量
或
$user=array (”name”=> $_request['user_name‘,"age"=>$_request['age'];//数组变量
sql语句就可以写成:
sqlstr = “select * from abc_table where user_name = ‘ ” . $user_name . ” ‘ “; sqlstr = “select * from abc_table where user_name = ‘ ” . $user["name"] . ” ‘ “;
对比一下:
sqlstr=”select * from abc_table where user_name = ‘ abc ‘ ” ; sqlstr=”select * from abc_table where user_name =' ” . $user _name . ” ‘ “; sqlstr=”select * from abc_table where user_name =' ” . $user["name"] . ” ‘ “;
sqlstr可以分解为以下3个部分:
1:”select * from table where user_name = ‘ ” //固定sql语句 2:$user //变量 3:” ‘ ”
附:大家也看到了 echo '<br/>'; html中的标签在单引号和双引号中都有效。
总结一下php引号使用原则
1.字符串的值用引号
2.php中尽量用单引号,html代码全部用双引号
3.在包含变量的时候,用双引号可以简化操作
4.复杂的情况下用大括号包起来
php引号还有一个用处就是,有的时候需要用php生成文本文件,换行符n需要用双引号才能好使,单引号则会直接把n当成字符输出。
使用总结:在字符串里面不需要加入 变量 或者 单引号(')和反斜杠(\) 时,尽量用单引号引字符串,因为省去了双引号检查处理转义和解析变量上面的时间。能用单引号尽量用单引号。
推荐阅读
-
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
-
解析php中array_merge与array+array的区别
-
linux shell中单引号、双引号、反引号、反斜杠的区别
-
js中apply()和call()的区别与用法实例分析
-
php面向对象中static静态属性与方法的内存位置分析
-
PHP中exec与system用法区别分析
-
PHP API中,MYSQL与MYSQLI的持久连接区别
-
php中instanceof 与 is_a()区别分析
-
PHP中isset与array_key_exists的区别实例分析
-
PHP中array_merge和array相加的区别分析