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

Tim*_*wen 4 php escaping date

这是约会.一切都在被逃脱,但是在"\ a\t"中.谁知道为什么?

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

Fab*_*tté 11

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

使用'\t'"\\t"

单引号字符串按\字面解释,我推荐用于您的用例.否则你必须逃避\角色以使其按字面解释.

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

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

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

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

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