简单概括PHP的字符串中单引号与双引号的区别

5年以前  |  阅读数:651 次  |  编程语言:PHP 

今天有个朋友问起,说下区别,顺便复习下。

单引号与双引号的不同:

  • " "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。
  • ' '单引号里面的不进行解释,直接输出。
  • 单引号解析的时间比双引号快 。
  • 单引号支持\转义符,双引号支持的转义符更多 。

    $hello= 3;
    echo "hello is $hello"; // 打印结果:hello is 3 
    echo 'hello is $hello'; // 打印结果: hello is $hello 
    echo "hello is $hello\n"; // 打印结果: hello is 2 (同时换行) 
    echo 'hello is $hello\n'; // 打印结果: hello is $hello\n

PS:
今天看到老外提到了PHP的单引号的问题,其中提到了有趣的东西,摘录如下:
其中说装了PHP扩展 Vulcan Logic Disassembler 后,可以看到PHP生成的中间码,
首先是:


    echo "This is a string"; 

会转变为:


    ECHO    'This is a string' 


    echo 'This is a string'; 

则变成


     ECHO    'This is a string' 

,是一样的
如果是


    echo "This is a $variable"; 

则PHP产生的OPCODE为


    INIT STRING ~0 

    2 ADD_STRING  ~0 ~0 'This' 

    3 ADD_STRING  ~0 ~0 ' ' 

    4 ADD_STRING  ~0 ~0 'is' 

    5 ADD_STRING  ~0 ~0 ' ' 

    6 ADD_STRING  ~0 ~0 'a' 

    7 ADD_STRING  ~0 ~0 ' ' 

    8 ADD_VAR    ~0 ~0 !0 

    9 ECHO      ~0 


    echo "This is a " . $variable; 

则会变成


    CONCAT    ~0 'This is a ' !0 

    2 ECHO      ~0 

可以见到,速度快很多了,用.连接的话

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例