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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值