gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 11:35:50 25 4
gpt4 key购买 nike

我有点困惑,为什么我在 PHP 中看到一些代码中的字符串放在单引号中,有时放在双引号中。

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

最佳答案

PHP strings不仅可以通过两种方式指定,还可以通过四种方式指定。

  1. Single quoted strings将几乎完全“按原样”显示事物。不会解释变量和大多数转义序列。异常(exception)是要显示文字单引号,您可以使用反斜杠 \' 对其进行转义。 , 并显示一个反斜杠,你可以用另一个反斜杠 \\ 转义它(是的,即使是单引号字符串也会被解析)。
  2. Double quote strings将显示大量转义字符(包括一些正则表达式),并将评估字符串中的变量。这里很重要的一点是,您可以使用花括号来隔离要评估的变量的名称。例如,假设您有变量 $type你想echo "The $types are" .这将寻找变量 $types .为了解决这个问题,请使用 echo "The {$type}s are"您可以将左大括号放在美元符号之前或之后。看看string parsing看看如何使用数组变量等。
  3. Heredoc字符串语法类似于双引号字符串。它以 <<< 开头.在此运算符之后,提供一个标识符,然后是一个换行符。字符串本身紧随其后,然后再次使用相同的标识符来关闭引号。您不需要在此语法中转义引号。
  4. Nowdoc (自 PHP 5.3.0 起)字符串语法本质上与单引号字符串类似。不同之处在于,甚至不必转义单引号或反斜杠。 nowdoc 用相同的 <<< 标识用于 heredocs 的序列,但后面的标识符用单引号括起来,例如<<<'EOT' . nowdoc 中不进行任何解析。

注意事项:单引号内的单引号和双引号内的双引号必须转义:

$string = 'He said "What\'s up?"';
$string = "He said \"What's up?\"";

速度:
我不会过分强调单引号比双引号快。在某些情况下,它们可能更快。这是一篇文章explaining one manner in which single and double quotes are essentially equally fast since PHP 4.3 (Useless Optimizations 朝向底部,部分 C)。另外,这个 benchmarks page有单引号和双引号比较。大多数比较是相同的。有一个比较,双引号比单引号慢。

关于php - PHP中单引号和双引号字符串有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3446216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com