如何打印“就是这样!”在PHP中?有双引号吗?

时间:2019-02-16 23:32:34

标签: php

我要打印“就是这样!”与php中的双引号和单引号完全一样吗?谁能找到解决方案?

3 个答案:

答案 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!"');