【PHP面试题】PHP的字符串的定义方式及各自区别(单引号,双引号,heredoc,newdoc)?

一、定义方式

单引号/ 双引号 / heredoc 和 newdoc;(三种)

1、 单引号
// 单引号定义变量
$str = 'a b c d e f $a g'; // 此时$a会被原样输出

2、 双引号
// 此处可以把 '{$a}' 换成特殊字符,如 & $a &
// 原因:单引号的执行效率更高,且将name放到外面可读性更强。
$str = "a b c d e f '{$a}' g h"; // a b c d e f $a的值 g h 

注:双引号中包含单引号,单引号中包含变量,该变量是会被解析的,因为最外层是双引号,且里面的单引号会被原样输出.

使用场景:一般会用于sql语句

不推荐写法$sql = "SELECT * FROM user WHERE name = '$name'";
推荐写法$sql = 'SELECT * FROM user WHERE name = \''.$name.'\'';


3、 heredoc
  • 开头和结尾的名字保持一致;
  • 结尾要放到一行的开头(前面不可以有任何字符,包括空格)【适用于超长的内容】;
  • 功能与双引号一致;
$str = <<<EoT
 . 
 . // 内容可以为字符串,可以写变量、转义字符等,都可以被解析(功能与双引号一致)
 .
 .
EoT;

4、 newdoc
  • 开头和结尾名字要保持一致,且定界符处用单引号括起来;
  • 结尾要放到一行的开头(前面不可以有任何字符,包括空格)【适用于超长的内容】;
  • 功能与单引号一致
// newdoc
$str = <<<'EoT'
 .
 .
 .
 .
EoT;

二、区别

  • 单引号:
    • (1) 单引号不能解析变量;
    • (2) 单引号不能解析转义字符,只能解析单引号和反斜杠本身;
    • (3) 变量和变量、变量和字符串、字符串和字符串之间可以用.连接;
    • (4) 单引号的效率更高;
  • 双引号:
    • (1) 双引号可以解析变量,变量可以使用特殊字符和{}包含;
    • (2) 双引号可以解析所有转义字符;
    • (3) 也可以使用.来连接;
  • heredoc 和 newdoc:
    • (1) heredoc 功能类似于 双引号;
    • (2) newdow 功能类似于 单引号;
    • (3) 两者都是用来处理大文本。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值