你如何用PHP中的反斜杠创建一个字符串?

Set*_*eth 31 php

我需要一个反斜杠作为字符串的一部分.我该怎么做?

Mar*_*ker 55

当反斜杠\不转义字符串的终止引号或以其他方式创建有效的转义序列(在双引号字符串中)时,其中任何一个都可以产生一个反斜杠:

$string = 'abc\def';
$string = "abc\def";
//
$string = 'abc\\def';
$string = "abc\\def";
Run Code Online (Sandbox Code Playgroud)

当转义下一个字符会导致解析错误(终止字符串的引用)或有效的转义序列(在双引号字符串中)时,需要转义反斜杠:

$string = 'abcdef\\';
$string = "abcdef\\";

$string = 'abc\012';
$string = "abc\\012";
Run Code Online (Sandbox Code Playgroud)

  • 对于单引号,如果反斜杠位于字符串的末尾,则无效.在单引号中使用双反斜杠适用于所有场景 - 无论引用类型如何,后一示例都更好. (3认同)
  • 在这个特定的例子中,反弹可以是单独的.逃避它是一种很好的做法.但对于单引号一样. (2认同)

Mar*_*ers 44

简短回答:

使用两个反斜杠.

答案很长:

有时您可以使用单个反斜杠,但有时您需要两个反斜杠.当你可以使用单个反斜杠取决于两件事:

  • 你的字符串是用单引号还是双引号括起来的
  • 紧跟反斜杠的字符.

如果你有一个双引号字符串,反斜杠在很多情况下被视为转义字符,所以最好总是用另一个反斜杠转义反斜杠:

$s = "foo\\bar"
Run Code Online (Sandbox Code Playgroud)

在单引号字符串中,反斜杠将是文字的,除非它们后跟单引号或另一个反斜杠.因此,要输出带有单引号字符串的单个反斜杠,通常可以这样写:

$s = 'foo\bar'
Run Code Online (Sandbox Code Playgroud)

但要连续输出两个反斜杠,您需要这样:

$s = 'foo\\\\bar'
Run Code Online (Sandbox Code Playgroud)

如果你总是使用两个反斜杠,那么你永远不会错.


Dog*_*ert 5

你必须逃脱所有的反斜杠"c:\\windows\\".