4

这是日期。除了 "\a\t" 中的 t 之外,一切都被转义了。有人知道为什么吗?

date("M m\, Y \a\t g\:ia", $s->post_date);
4

1 回答 1

11

"\t"是水平制表符的转义序列。

使用'\t'"\\t"

单引号字符串按\字面意思解释,我建议您将其用于您的用例。否则,您必须转义该\字符才能对其进行字面解释。

在 PHP 的情况下,\双引号字符串中前面的无效转义序列也被逐字解释。我宁愿避免这种行为,遵循最不意外的原则。

附言。(感谢@IMSoP)有两种情况\s 在单引号字符串中没有按字面意思解释:

  • 双反斜杠仍然是可能的,但可选。例如:'\\hi' === '\hi'
  • 字符串分隔符必须在字符串文字内进行转义。例如:'\'' === "'"

尽管如此,单引号字符串并不令人惊讶,因为\n, \r, \t, \v,\040和类似的结果是字符串文字内部的实际字符序列,而不是这些被解释为转义序列。

将必须按字面解释的所有反斜杠加倍也是一个可靠的选项,它也适用于双引号和单引号字符串。

于 2013-09-20T22:52:43.613 回答