解析错误:语法错误,第23行意外的T_SL

时间:2010-08-06 15:45:37

标签: php

我收到此错误:

  

解析错误:语法错误,意外   第23行的T_SL

这是第23行:

$selectorder = <<<ORDER 

这是在上下文中:

$grid->setUrl('myfirstgrid.php');

$selectorder = <<<ORDER 
function(rowid, selected) 
{ 
    if(rowid != null) { 
        alert("selected: "+rowid); 
    } 
} 
ORDER;
$grid->setGridEvent('onSelectRow', $selectorder);

导致此错误的原因是什么?

我个人不知道<<<做了什么,从未使用过它,我是从教程中得到的。我试图谷歌它,但你不能像这样谷歌字符:(

6 个答案:

答案 0 :(得分:54)

检查<<<ORDER后的空格。应该没有空白字符。

答案 1 :(得分:4)

<<<适用于heredoc:See manual

答案 2 :(得分:1)

在结束ORDER;

之前,请确保没有 SPACE / INDENTATION

答案 3 :(得分:1)

PHP Heredoc与%符号相关不好,以下内容也会导致Parse error: syntax error, unexpected T_SL

<?php
$var=<<<%%SHRUBBERY%%

Nih!

%%SHRUBBERY%%;
?>

答案 4 :(得分:1)

还要确保您有3'&lt;&lt;&lt;&lt;&lt;省略一个将抛出此错误。此外,如果您使用NOWDOC,请确保您的托管服务提供商已安装php 5.3。另外,如果您的php环境低于5.3,请不要使用双引号或单引号。

答案 5 :(得分:0)

它被称为“Heredoc语法”,它允许您指定大字符串而不使用引号。在这种情况下,看起来您正在使用它将JavaScript代码放入变量中。由于您使用<<<ORDER启动了字符串,因此您应该可以使用ORDER;完成该字符串,但是您需要确保ORDER;出现在行的开头,在它之前没有空格。