【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) 两者都是用来处理大文本。

文章作者: Alex
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alex !
 上一篇
PHP 常量及数据类型 PHP 常量及数据类型
数据类型三大数据类型(标量,复合,特殊) 标量: 字符串 整型 浮点型 布尔型 NULL 复合: 数组 对象 特殊: 资源 浮点类型不能用于精确的相等的判断 $a = 0.1; $b = 0.7; if ($a+$b ==
2020-07-05
下一篇 
【PHP面试题】什么是 引用变量?在PHP当中,用什么符号定义引用变量? 【PHP面试题】什么是 引用变量?在PHP当中,用什么符号定义引用变量?
一. PHP引用变量考察点1. PHP的引用变量的概念及定义方式概念 在PHP中,引用意味着用不同的名字访问同一个变量内容。 定义方式 使用 & 符号 2. 延伸:PHP引用变量的原理1)赋值 将一个变量的值赋值给另一个变量
2020-07-04
  目录