PHP中的单引号和双引号字符串有什么区别?

我不是PHP编程的专家,但我有点困惑为什么我在PHP中看到一些代码用单引号放入字符串,有时用双引号。

我只是在.NET或C语言中知道,如果它是单引号,这意味着它是一个字符,而不是一个字符串。

11个解决方案

957 votes

PHP字符串不仅可以通过两种方式指定,而且可以通过四种方式指定。

单引号字符串几乎完全“按原样”显示。 变量和大多数转义序列都不会被解释。 例外情况是,要显示文字单引号,您可以使用反斜杠Useless Optimizations对其进行转义,并显示反斜杠,您可以使用另一个反斜杠C转义它(所以是的,即使单引号字符串也会被解析)。

双引号字符串将显示一系列转义字符(包括一些正则表达式),并且将评估字符串中的变量。 这里重要的一点是,您可以使用花括号来隔离要评估的变量的名称。 例如,假设你有变量Useless Optimizations和你的C那将寻找变量$types。为了解决这个问题,请使用echo "The {$type}s are"您可以在美元符号之前或之后放置左括号。 看一下字符串解析,看看如何使用数组变量等。

Heredoc字符串语法就像双引号字符串一样。 它以Useless Optimizations开头。在此运算符之后,提供标识符,然后提供换行符。 字符串本身如下,然后再次使用相同的标识符来关闭引号。 您不需要在此语法中转义引号。

Nowdoc(自PHP 5.3.0开始)字符串语法基本上类似于单引号字符串。 不同之处在于,甚至不需要转义单引号或反斜杠。 nowdoc用与heredocs相同的Useless Optimizations序列标识,但后面的标识符用单引号括起来,例如: C.在nowdoc中没有解析。

速度:

我不会过分强调单引号比双引号更快。 在某些情况下,它们可能更快。 这篇文章解释了自PHP 4.3以来单引号和双引号基本上同样快速的一种方式(Useless Optimizations向下,第C节)。 此外,此基准测试页面还有单引号和双引号比较。 大多数比较是相同的。 有一个比较,其中双引号比单引号慢。

Peter Ajtai answered 2019-01-18T09:25:41Z

179 votes

事情用双引号评估,但不是单引号:

$s = "dollars";

echo 'This costs a lot of $s.'; // This costs a lot of $s.

echo "This costs a lot of $s."; // This costs a lot of dollars.

Dani answered 2019-01-18T09:26:03Z

37 votes

单引号

指定字符串的最简单方法是将其用单引号括起来。 单引号通常更快,内部引用的所有内容都被视为普通字符串。

例:

echo 'Start with a simple string';

echo 'String\'s apostrophe';

echo 'String with a php variable'.$name;

双引号

在PHP中使用双引号以避免必须使用句点来分隔代码(注意:如果您不想在字符串中使用连接(.)运算符,请使用花括号{}来包含变量)。

例:

echo "Start with a simple string";

echo "String's apostrophe";

echo "String with a php variable {$name}";

在PHP中,单引号与双引号是否有性能优势?

是。 使用单引号稍微快一些。

PHP不会使用额外的处理来解释单引号内的内容。 当你使用双引号时PHP必须解析以检查那里是否有任何变量。

Janak Kanani answered 2019-01-18T09:27:38Z

34 votes

单引号字符串中没有解释变量。 双引号字符串。

此外,双引号字符串可以包含没有反斜杠的撇号,而单引号字符串可以包含未转义的引号。

单引号字符串在运行时更快,因为它们不需要被解析。

Borealid answered 2019-01-18T09:28:17Z

23 votes

在PHP中,'a'和'my name'都是字符串。 您可以在PHP手册中相关信息。

你应该知道的是

$a = 'name';

$b = "my $a"; == 'my name'

$c = 'my $a'; != 'my name'

在PHP中,人们使用单引号来定义常量字符串,如'a','my name','abc xyz',而使用双引号来定义包含标识符的字符串,如"a $b $c $d"。

还有一件事是,

echo 'my name';

比...更快

echo "my name";

echo 'my ' . $a;

比...慢

echo "my $a";

对于其他使用的字符串也是如此。

Bang Dao answered 2019-01-18T09:29:31Z

15 votes

single,double,heredoc和nowdoc引号的示例

$fname = "David";

// Single quotes

echo 'My name is $fname .'; // My name is $fname.

// Double quotes

echo "My name is $fname."; // My name is David.`

// Curly braces to isolate the name of the variable

echo "My name is {$fname}."; // My name is David.

// Example of heredoc

echo $foo = <<

My name is {$fname}

abc;

// Example of nowdoc

echo <<< 'abc'

My name is "$name".

Now, I am printing some

abc;

?>

Rabindra Nath answered 2019-01-18T09:29:54Z

11 votes

两种封闭的字符都是字符串。 一种报价方便地用于包含其他类型的报价。 引号类型之间的最大区别是封闭的标识符引用替换为内部双引号,但不在单引号内。

wallyk answered 2019-01-18T09:30:17Z

11 votes

在PHP中,单引号文本被视为字符串值,双引号文本将通过替换和处理它们的值来解析变量。

$test = "variable";

echo "Hello Mr $test"; // the output would be: Hello Mr variable

echo 'Hello Mr $test'; // the output would be: Hello Mr $test

这里,双引号解析值,单引号被视为字符串值(不解析$ test变量。)

Maulik Bhojani answered 2019-01-18T09:30:47Z

0 votes

也许我有点晚了,有点偏离主题,但无论如何......

您不必选择因为您的字符串之间的内容:

alert("It’s “game” time.");或alert('It’s “game” time.');

相反,您可以这样输入,然后使用双引号或单引号,因为它无关紧要:

alert("It’s “game” time.");和alert('It’s “game” time.');

Takit Isy answered 2019-01-18T09:31:42Z

0 votes

$name = 'test';

$singleQuote = 'This is example for single quote $name'; // here $name variable not evaluating

echo $singleQuote; // Output: This is example for single quote $name

$singleQuote = "This is example for single quote $name"; // here $name variable will evaluate and replace variable value

echo $singleQuote; // Output: This is example for single quote test

Also inside single quote expression evaluate faster campare to double quotes

Mahadeva Prasad answered 2019-01-18T09:31:58Z

-1 votes

一件事:

请注意,除了分号(;)之外,具有Heredoc结束标识符的行必须不包含其他字符。 这尤其意味着标识符可能不会缩进,并且在分号之前或之后可能没有任何空格或制表符。

例:

$str = <<

Example of string

spanning multiple lines

using heredoc syntax.

EOD;

srmilon answered 2019-01-18T09:32:28Z

php双引号表示什么,PHP中的单引号和双引号字符串有什么区别?相关推荐

  1. js html 单引号,JS 和 HTML 中的单引号与双引号

    JS中的单引号与双引号 HTML中的单引号与双引号很简单,就是两个字符实体: 显示 描述 实体名称 实体编号 " 双引号.引号 " " ' 单引号.撇号 ' ' x 1 ...

  2. js拼装html单引号双引号,js、html中的单引号、双引号及其转义使用

    js.html中的单引号.双引号及其转义使用 在js中对相关字符做判断或取值的时候很多情况下都会用到这些. ------ 在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下: IE提示 ...

  3. html中单引号与双引号区别,JS 和 HTML 中的单引号与双引号

    JS中的单引号与双引号 HTML中的单引号与双引号很简单,就是两个字符实体: 显示 描述 实体名称 实体编号 " 双引号.引号 " " ' 单引号.撇号 ' ' x 1 ...

  4. php中的单引号与双引号详解

    一.引号定义字符串 在Php中,通常一个字符串被定义在一对引号中,如: 'I am a string in single quotes' "I am a string in double q ...

  5. c语言双引号和单引号的区别_Python中的单引号和双引号有什么区别?

    在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串.但是这两种通用的表达方式可以避免出错之外,还可以减少转义字符的使用,使程序看起来更清晰. 举两个例子: 1.包含单引号的字符 ...

  6. java中双引号和单引号_Java中的单引号和双引号之间有区别吗?

    问题 Java中的单引号和双引号之间有区别吗? #1 热门回答(126 赞) 对于literalchar使用单引号,对于literalString使用双引号,如下所示: char c = 'a'; S ...

  7. PostgreSQL 中的单引号与双引号

    PostgreSQL 中的单引号与双引号 在pg中的sql,单引号用来标识实际的值,双引号用来标识表名(table name)或列名(column name)等数据库中存在的值. 如,执行一句quer ...

  8. python代码什么时候用单引号_Python 中的单引号和双引号有什么区别?

    在Python当中可以使用单引号,也可以使用双引号,那两者有什么区别吗? 简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串.但是这两种通用的表达方式,除了可以简化程序 ...

  9. php语言中双引号的作用是什么,php中的单引号与双引号作用详解

    一.引号定义字符串 在Php中,通常一个字符串被定义在一对引号中,如: 'I am a string in single quotes' "I am a string in double q ...

最新文章

  1. 手写html基础格式,手写服务器_HTML 简单入门知识
  2. python selenium模块使用出错解决,Message: 'geckodriver' executable needs to be in PATH
  3. 系统带你学习 WebAPIs 第四讲
  4. trim的返回值php,php trim()函数
  5. QDialog常用理解
  6. MySQL:数据库还原问题
  7. 猜物品游戏java编程_小猿圈Java初学者练习小案例:猜数字游戏
  8. css鼠标移入线条延中心伸长,jquery鼠标悬浮,显示动态延伸线条,如何在鼠标移开后依然让线条元素延伸到终点...
  9. eigrp 负载均衡和非负载均衡实验
  10. 解读《关于促进大数据发展的行动纲要》
  11. 服务器c盘临时文件在哪里,excel在c盘哪个文件夹|excel临时文件位置
  12. 【Ubuntu】 Ubuntu16.04中设置使用root用户登录图形界面
  13. c语言2维数组每一行最小值,二维数组每一行最大值
  14. Android应用耗电问题排查
  15. 2023年全国最新二级建造师精选真题及答案56
  16. 视频号如何发表视频呢?
  17. 华为云高校开发者青年班第七期——DevCloud的托马斯商城部署——知识点总结
  18. 通过例子进阶学习C++(四)计算2的64次方,不服写写看
  19. 欧盟加密监管法案通过,美国急了?
  20. IT企业专利工程师之三——计算机技术领域专利挖掘刍议

热门文章

  1. assertion python_【Python】断言功能Assertion
  2. 关闭windows hello然后尝试再次运行安装程序_蜂鸟E203系列——Windows下运行hello world例程...
  3. wxpython 优秀的界面_wxPython图形用户界面
  4. java设计与模式_设计模式《JAVA与模式》之状态模式
  5. c#读取csv到数组_C#读取CSV
  6. php安装mongo扩展,php安装mongo扩展和mongodb扩展
  7. win8安装mysql出现2503_win8.1安装msi文件出现2503错误的解决方法
  8. 基于JAVA+Servlet+JSP+MYSQL的学生选课系统
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的学生请假管理系统
  10. Java JDK1.8新特性之四大函数式接口