为什么不是“\ t”转义这个PHP日期格式?

时间:2013-09-20 22:51:45

标签: php date escaping

这是日期。 一切都在逃脱,但在“\ a \ t”中。有谁知道为什么?

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

1 个答案:

答案 0 :(得分:11)

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

使用'\t'"\\t"

单引号字符串按字面解释\,我推荐用于您的用例。否则你必须转义\字符以使其按字面解释。

在PHP的情况下,双引号字符串中无效转义序列之前的\也会按字面解释。我宁愿避免这种行为,遵循最少惊喜的原则。

PS。 (感谢@IMSoP)有两种情况,\ s不会在单引号字符串中解释:

  • 仍然可以加倍反斜杠,但可选。例如:'\\hi' === '\hi'
  • 字符串分隔符必须在字符串文字内转义。例如:'\'' === "'"

仍然,单引号字符串在\n\r\t\v\040中不那么令人惊讶,并且实际序列中的结果相似字符串文字内的字符而不是这些字符被解释为转义序列。

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