为什么不是';"\";转义此PHP日期格式?
这是日期。 正在转义所有内容,但“\a\t”中的t除外。有人知道为什么吗为什么不是';"\";转义此PHP日期格式?,php,date,escaping,Php,Date,Escaping,这是日期。 正在转义所有内容,但“\a\t”中的t除外。有人知道为什么吗 date("M m\, Y \a\t g\:ia", $s->post_date); “\t”是水平制表符的转义序列 使用'\t'或“\\t” 单引号字符串按字面意思解释\,我建议您使用它。否则,您必须转义\字符才能对其进行逐字解释 在PHP中,双引号字符串中无效转义序列前面的\也会被逐字解释。我宁愿避免这种行为,遵循最小意外的原则 ps.(感谢@IMSoP)有两种情况下,\s不能在单引号字符串中进行字面解释:
date("M m\, Y \a\t g\:ia", $s->post_date);
“\t”
是水平制表符的转义序列
使用'\t'
或“\\t”
单引号字符串按字面意思解释\
,我建议您使用它。否则,您必须转义\
字符才能对其进行逐字解释
在PHP中,双引号字符串中无效转义序列前面的\
也会被逐字解释。我宁愿避免这种行为,遵循最小意外的原则
ps.(感谢@IMSoP)有两种情况下,\
s不能在单引号字符串中进行字面解释:
- 加倍反斜杠仍然是可能的,但是可选的。例如:
'\\hi'=='\hi'
- 字符串分隔符字符必须在字符串文字内转义。例如:<代码>'\''==''“
\n
、\r
、\t
、\v
、\040
和类似的结果是字符串文本中的实际字符序列,而不是这些被解释为转义序列
将所有必须按字面解释的反斜杠加倍也是一个稳健的选择,它同时适用于双引号和单引号字符串。一个小小的挑剔:单引号字符串按字面解释<代码>\`trumbly**,除了序列代码>\`和<代码>\`**。这有一个奇怪的效果,即'\t'和
'\\t'
实际上是同一个字符串(一个`),就像
'\\\t'和'\\\\t'
(两个反斜杠)。@IMSoP注释中的“\\”字符内联代码在这里被严重地窃听了<代码>:(但我明白你的意思。=]是的,我刚刚意识到;反斜杠转义总是一件痛苦的事。关键是,它们在PHP中的单引号内可能和双引号一样令人惊讶,因为将它们加倍仍然是可能的,但却是可选的。我建议总是将它们加倍,尽管看起来很难看。仅供参考。@IMSoP Oh do单引号字符串中的双引号转义,这是我没有尝试过的。感谢您的输入,我将在运行多个测试后将其添加到答案中。是的,这些转义总是很痛苦。=]