源代码如何管理空白和串联

时间:2018-10-25 11:54:57

标签: php whitespace double-quotes linefeed

在以下代码中:

    $email_body = 
       "message from $name \n" 
       "email address $visitor_email \n"
       "\n $message";

由于意外的",第四行产生了解析错误,但引号似乎已正确配对。那么,为什么(最后一个?)最后一行中的一个“意外”呢?

我希望$ email_body的结果是:

    message from $name
    email address $visitor_email 

    $message

我浏览了php.net/manual上的语法页面,并在此处阅读了单引号和双引号的问题。我在字符串的开头找不到换行符的任何例外,但这似乎是事实。有人可以澄清吗?

3 个答案:

答案 0 :(得分:1)

除非您使用.将它们重新连接在一起,否则不要像这样将字符串分解!

那么,要么:

 $email_body = 
   "message from $name \n 
   email address $visitor_email \n
   \n $message"; // also the whole string on one line is fine

$email_body = 
   "message from $name \n" 
   . "email address $visitor_email \n"
   . "\n $message";

答案 1 :(得分:0)

运行它时,错误出现在第三行,而不是第四行。

这里的问题是您在另一个字符串文字旁边有一个字符串文字,并且它们之间没有运算符。

这是错误的:

"foo" "foo" 

原样:

"foo"
"foo"

您可以执行以下操作:

"foo" . "foo"

"foo" . 
"foo"

答案 2 :(得分:0)

您的错误是

  

第5行的错误:解析错误,意外   T_CONSTANT_ENCAPSED_STRING(“电子邮件地址$ visitor_email \ n”

这是您的错误开始的地方

$email_body = 
       "message from $name \n" // This line you need to add concatination
       "email address $visitor_email \n"

然后您的代码将如下所示

 <?php

 $email_body = 
       "message from $name \n". 
       "email address $visitor_email \n".
       "\n $message";