首页 > 编程语言 >再谈PHP单引号和双引号区别

再谈PHP单引号和双引号区别

时间:2022-08-20 16:25:57浏览次数:54  
标签:abc name 双引号 单引号 user PHP

关于单引号和双引号的区别和效率问题。很多朋友了解的不是很清楚,一直以为PHP中单引号和双引号是互通的,直到有一天,发现单引号和双引号出现错误的时候才去学习研究。所以今天再拿出来谈谈他们的区别,希望大家不要再为此困惑。
” ” 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。
‘ ‘ 单引号里面的不进行解释,直接输出。
从字面意思上就可以看出,单引号比双引号要快了。
例如:
$abc=’my name is tome’;
echo $abc //结果是:my name is tom
echo ‘$abc’ //结果是:$abc
echo “$abc” //结果是:my name is tom
特别在使用MYSQL语句的时候,双引号和单引号的用法让新手不知所措,在这里,举个例子,来进行说明。
假设查询条件中使用的是常量,例如:
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:” ‘ ”
1,2,3部分字符串之间用”.” 来连接
[p=30, 2, left]
[/p]

 

 

====

一.首先想想PHP里所有的单词(其实应该叫符号)有几类.

 

1.PHP,mysql两方的关键词与函数.例如echo,print,mysql_connect等等.这些肯定不加引号的.

2.常量.新手可能用得不多,常量的好处是全局性,穿透函数.速度也快些不过新手可以暂时不管常量这玩意儿.

3.变量.前面带"$"号的就是变量.可以为变量设一个"值",例如一串字符,一个数字,逻辑(真/假)值等.也可以表示一组值(数组,对象等)

4.值.通常要给常量与变量设置值.赋值语句$a=\'abc\'中,右边的\'abc\'即为值.

5.函数的参数(在括号里的).可以是常量,变量,值三种.

变量(常量)与值的关系正如下列各种情况.

"颜色"与"红",

"长度"与100,

"日期"与2007年10月25号"

二.什么情况下用PHP引号

其实只有第4项"值"需要用到引号,函数的里也只有值要用引号.并且只有字符串(日期值可以当成字符串)内容需要用到引号.数字(可用可不用),真假(不能用)例外.

例子

三.单引号与双引号的区别

一般情况下两者是通用的.但双引号内部变量会解析,单引号则不解析.

例子

所以如果内部只有纯字符串的时候,用单引号(速度快),内部有别的东西(如变量)的时候,用双号引更好点.

四.字符串内部如果出现PHP引号怎么办--关于转义.

比如我们想输出: 我"是\'天才

这时候就必须用到转义了.转义即把本来有作用的符号转成无意义的字符.

这样就正常了,因为号把它后面的任何字符都转成无意义的符号.在这里来说,PHP解析器根本没把号后面的引号当成引号来看待.

同样的,还可以转义分号,$符号等特殊符号.

五.字符串的连接.

这是个麻烦的问题.一般来说,变量值,直接包含在双引号中就可以了.另外字符串的叠加用"."字符.

在复杂的情况里可以用大括号来包含,PHP便知道这是一个完整的东西,里面的引号不会影响到外面的引号关系.

与html的混合也很简单,最好养成HTML中全部用双引号,PHP中尽量用单引号的习惯.这样方便把大段的HTML代码复制过来,只要头尾加上单引号就是一个正确的字符串了.几百行的HTML代码也不用担心PHP引号错乱.

总结一下PHP引号使用原则

1.字符串的值用引号

2.PHP中尽量用单引号,HTML代码全部用双引号

3.在包含变量的时候,用双引号可以简化操作

4.复杂的情况下用大括号包起来

PHP引号还有一个用处就是,有的时候需要用php生成文本文件,换行符\n需要用双引号才能好使,单引号则会直接把\n当成字符输出。

     https://www.cnblogs.com/llsun/archive/2012/07/16/2593027.html

标签:abc,name,双引号,单引号,user,PHP
From: https://www.cnblogs.com/jmbt/p/16607956.html

相关文章

  • php是否区分大小写
    按常理来说,大多数语言都是区分大小写的,比如变量ab和AB是不同的,函数cd和CD也是不同的,但是php有点特别。首先,php中的变量和常量是区分大小写的。<?php $......
  • php断点调试工具------NetBeans+Xdebug调试php方法(测试成功)
    @原文url:http://www.cnblogs.com/dcb3688/p/4608015.html@netbeans官方调试php代码说明:https://netbeans.org/kb/docs/php/debugging_zh_CN.html个人认为,对有有经验......
  • netbeans for php常用快捷键
     https://www.cnblogs.com/onephp/p/5378158.html文本编辑复制当前行到上一行/下一行ctl+shf+up移动当前行到上一行/下一行shf+alt+left/right/down/up删除当前行ct......
  • 代码审计-PHP反序列化漏洞
    什么是序列化序列化可以实现将对象压缩并格式化,方便数据的传输和存储。为什么要序列化?PHP文件在执行结束时会把对象销毁,如果下次要引用这个对象的话就很麻烦,所以就有......
  • PHP爬虫(2)DOM处理
    https://www.cnblogs.com/jbexploit/p/4592527.html摘要:在PHP爬虫(1)中详细了介绍了CURL抓取HTML数据的技术。采集数据处理也是爬虫技术中非常重要的部分。处理HTML数据可......
  • 如何严格设置php中session过期时间
    https://www.cnblogs.com/YangJieCheng/p/7268378.html如何严格限制session在30分钟后过期!1.设置客户端cookie的lifetime为30分钟;2.设置session的最大存活周期也为30分......
  • php file_exists 检查文件或目录是否存在
    https://www.cnblogs.com/haven/archive/2012/10/24/2737140.html在我们一般正常情况下使用file_exists检查文件或目录是否存在是没有问题了,但要注意一个是安全模式和......
  • php 去掉字符串的最后一个字符
    在一个站长的空间看到这样的文章,觉得会有用,先记录下来原字符串1,2,3,4,5,6,去掉最后一个字符",",最终结果为1,2,3,4,5,6 代码如下: $str = "1,2,3,4,5,6,"; $newstr......
  • php 图片添加文字水印 以及 图片合成(微信快码传播)
    1、图片添加文字水印:12345678910111213141516171819202122232425262728293031$bigImgPath = 'backgroud.png';    $img......
  • docker搭建phpswoole实现http服务
    一、创建DockerfileFROMphpswoole/swoole#COPY./www//var/www/二、同级目录下创建docker-composer.yamlservices:phpswoole-server:container_name:p......