我要打印“就是这样!”与php中的双引号和单引号完全一样吗?谁能找到解决方案?
答案 0 :(得分:3)
您只需要用反斜杠将单引号转义
echo '"that\'s it!"';
答案 1 :(得分:1)
我会发布一些不同的东西,因为我喜欢它们,并且它认为那些经验不足的程序员经常会错过或不知道它。
HereDoc / NowDoc
//HereDoc works like " for variables
echo <<<TXT
"that's it!"
TXT;
TXT
标记可以是遵循与变量名称相同的规则的任何内容(\w+
,并且必须以Alpha开头),并且结尾的标记必须以“ ABSOULTLY”表示自己的行除了;
(可以在数组中省略)之外,其他都没有,甚至是空格。
//NowDoc works like ' for variables
echo <<<'TXT'
"that's it!"
TXT;
它经常被忽略,因为它没有在任何真正可见的地方记录,这是PHP.net上字符串类型页面上的第三个示例。然后,经过一堆滚动,您会发现Nowdoc
部分,唯一真正的区别是它们对变量的处理方式,如我所述。
http://php.net/language.types.string#language.types.string.syntax.heredoc
分隔字符串的第三种方法是heredoc语法:<<<。在此运算符之后,提供了一个标识符,然后提供了换行符。字符串本身紧随其后,然后再次输入相同的标识符以关闭引号。
结束标识符必须在该行的第一列开始。另外,标识符必须遵循与PHP中其他任何标签相同的命名规则:它必须仅包含字母数字字符和下划线,并且必须以非数字字符或下划线开头。 警告
非常重要的一点是,带有结束标识符的行除分号(;)外,不得包含其他任何字符。特别是这意味着标识符可能不会缩进,并且在分号之前或之后可能没有任何空格或制表符。同样重要的是要认识到,结束标识符之前的第一个字符必须是本地操作系统定义的换行符。在UNIX系统(包括macOS)上,这是\ n。结束定界符也必须跟换行符。
如果该规则被破坏并且结束标识符不是“干净的”,它将不会被视为结束标识符,PHP将继续寻找一个。如果在当前文件末尾之前找不到合适的结束标识符,则将在最后一行产生解析错误。
除了PHP(变化不大)外,这在其他语言中也很常见,这是最干净的方法(对于大量文本,请考虑HTML,JavaScript以及它们与PHP的混合使用)。
$selector = 'a.foobar';
echo <<<HTML
<script type="text/javascript">
;( function( $, window, document, undefined ) {
"use strict";
$(document).ready(function(){
$('tr.foobar').css('display', 'none');//singe quotes are fine
$("div.foobar").css("display", "none");//double quotes are too
$({$selector}).css('display', "none");//we can even mix them up if we want.
//we can use PHP variable like {$selector}, even these
//comments become comments in the JS.
//if that wasn't enough, most IDE's treat them like HTML
//so they are not greyed out, but nicely colored!
});
} ) ( jQuery, window, document );
</script>
HTML;
这将很好用,即使{$selector}
也会被PHP取代,{}
是可选的,除了方法调用(除非它们改变了)。我习惯使用它们,因为它可以在我的IDE中为它们着色更好。这是PHP如何处理“常规”双引号字符串中的变量的绝妙之处。 (可变插值),但在这里我们可以使用任何想要的两种类型的引号...
如果您确实将一个数组放入数组中,则只能以这种方式(没有;
)进行操作:
$a = [
<<<TXT
sometext
TXT
, "something else",
1,
2,
'etc..'
];
使用它们的其他语言(链接到PHP部分)
https://en.wikipedia.org/wiki/Here_document#PHP
在计算中,here文档(here-document,here-text,heredoc,hereis,here-string或here-script)是文件文字或输入流文字:它是一个部分源代码文件,被视为独立文件。该术语还用于多行字符串文字的形式,这些文字使用类似的语法,在文本中保留换行符和其他空格(包括缩进)。
重要的是它不使用引号来定义字符串,因此您可以随意使用它们而无需转义。
我碰巧发现的最后一件事是我从未真正阅读过的PHP文档。
结束标识符之前的第一个字符必须是本地操作系统定义的换行符。在UNIX系统(包括macOS)上是
\n
也许其他人知道,但是我不确定这一点到底有多重要。我在Windows桌面\r\n
上编程,然后在Linux服务器\n
上使用相同的文件,并且Never Never 1 time的内容出现问题。我确实使用了Eclipse PDT之类的编辑器,因此即使在Windows上,它也可能默认为\n
。但是我从来没有遇到任何问题。...
享受!
答案 2 :(得分:0)
不逃避的一种可能的工作方式如下:
echo('"'."that'".'s it!"');