php单引号和大括号,PHP中单引号和双引号string有什么区别?

这篇博客探讨了PHP中字符串定义的两种主要方式——单引号和双引号的差异。单引号字符串不解析变量和大多数转义序列,而双引号字符串则会。文章提到了使用花括号来隔离变量名的技巧,以及Heredoc和Nowdoc字符串语法。虽然在某些情况下单引号字符串的性能可能稍快,但这种差异通常不显著。博客还提醒读者在处理包含变量的字符串时应考虑使用哪种引号。
摘要由CSDN通过智能技术生成

PHPstring不仅可以以两种方式指定,而且可以以四种方式指定。

单引号的string将几乎完全“按原样”显示。 variables和大多数转义序列不会被解释。 例外是要显示一个文字单引号,你可以使用反斜杠\'转义它,并显示一个反斜杠,你可以用另一个反斜杠\\ ( 所以是的,即使单引号stringparsing )转义。

双引号string将显示大量的转义字符(包括一些正则expression式),并且string中的variables将被计算。 这里重要的一点是你可以使用花括号来隔离你想要评估的variables的名字 。 例如,让我们假设你有variables$type而你要echo "The $types are"这将查找variables$types 。 为了解决这个问题, echo "The {$type}s are"您可以在左边大括号之前或之后放置大括号。 看看stringparsing看看如何使用数组variables等。

Heredocstring语法就像双引号string一样工作。 它始于<<< 。 在这个操作符之后,提供一个标识符,然后是一个换行符。 string本身遵循,然后再次相同的标识符来closures报价。 你不需要在这个语法中转义引号。

Nowdoc (自PHP 5.3.0起)的string语法基本上像单引号string一样工作。 不同的是,甚至连单引号或反斜杠都不能逃脱。 nowdoc用与heredocs相同的<<

速度:

我不会太重视单引号比双引号快。 他们在某些情况下可能会更快。 这里有一篇文章解释了自PHP 4.3 ( 基本上 Useless Optimizations , C节)开始,单引号和双引号本质上是同样快的 。 此外,这个基准页面有一个单一的报价比较。 大部分的比较是相同的。 有一个比较双引号比单引号慢的比较。

事情得到双引号评估,但不是单一的:

$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.

单引号

指定string的最简单的方法是用单引号括起来。 单引号通常比较快,而引用的所有内容都被视为纯string。

例:

echo 'Start with a simple string'; echo 'String\'s apostrophe'; echo 'String with a php variable'.$name;

双引号

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

例:

echo "Start with a simple string"; echo "String's apostrophe"; echo "String with a php variable {$name}";

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

是。 使用单引号稍快。

PHP不会使用额外的处理来解释单引号内的内容。 当你使用双引号时,PHP必须parsing来检查那里是否有variables。

单引号string在其解释中没有variables。 双引号string。

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

单引号的string在运行时更快,因为它们不需要被parsing。

在PHP中, 'my name'和"my name"都是string。 您可以在PHP手册中阅读更多信息。

你应该知道的是

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

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

而其他的事情是,

echo 'my name';

比…更快

echo "my name";

echo 'my ' . $a;

比…慢

echo "my $a";

对于其他使用的string也是如此。

两种封闭的字符都是string。 一种types的报价方便地用于附上另一种types的报价。 "'"和'"'引号types之间的最大区别在于封闭的标识符引用被replace为双引号内部,而不是单引号内。

在PHP中,单引号文本被视为string值,双引号文本将通过replace和处理它们的值来parsingvariables。

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

在这里,双引号分析值,单引号被认为是string值(没有parsing$ testvariables)。

单引号,双引号,heredoc,nowdoc引号的示例

一件事:

注意到非常重要的是,具有Heredoc的closures标识符的行不能包含除分号(;)之外的其他字符。 这意味着特别是标识符不能缩进 ,在分号之前或之后可能没有空格或制表符 。

例:

$str = <<

如果我们在echo语句中使用双引号,它将检查variables数据和string。

如果我们在echo语句中使用单引号,它将只将所有数据视为string。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值