解析错误:语法错误,...期待T_STRING

时间:2013-03-22 07:12:37

标签: php syntax

我遇到了以下一点php的问题:

<?php 
  $pageTitle = \"Page 1";
  include(\"Header.php\");
?>

我收到此语法错误:

  

解析错误:语法错误,意外T_CONSTANT_ENCAPSED_STRING,期待T_STRING

错误在第二行。如果我在第二个引号之前有'\',我会在第二行收到以下错误消息:

  

解析错误:语法错误,意外''',期待第2行/home/maxster/scc.maxworks.org/p_404.php中的T_STRING

有人能解释发生了什么吗?

3 个答案:

答案 0 :(得分:1)

尝试删除/ on第二行。它想要一个字符串,所以只需要“Page 1”即可。

也删除所有斜杠。

答案 1 :(得分:1)

不要忘记在引号之前使用反斜杠意味着它们被视为字符串的一部分,因此您实际上是在代理代码的语法。例如,如果要在字符串中打印引号,则可以使用此案例:

<?php
echo "the french word \"lundi\" means \"monday\" in english";
?>

答案 2 :(得分:1)

你在字符串和字符串中混合转义引号。这是一个普通的字符串:

$pageTitle = "A string";

如果您希望字符串包含引号,则需要使用\来转义它们,如下所示:

$pageTitle = "I like the band \"U2\" very much!";

请注意,在PHP中,您可以将双引号更改为单引号。以下四个陈述是有效的:

$pageTitle = 'I like the band "U2" very much!';
$pageTitle = 'I like the band \'U2\' very much!';
$pageTitle = "I like the band 'U2' very much!";
$pageTitle = "I like the band \"U2\" very much!";

请注意报价需要如何转义!

不同之处在于,当字符串以双引号开头时,会对内联变量进行求值,而对于单引号则不是这样:

$bandName = "U2";
$pageTitle1 = 'I like the band $bandName very much!';
$pageTitle2 = "I like the band $bandName very much!";

echo $pageTitle1 . "<br />";
echo $pageTitle2;

这个输出将是

I like the band $bandName very much!
I like the band U2 very much!