2010-08-06 124 views
20

我收到此錯誤:解析錯誤:語法錯誤,在網上意外T_SL 23

Parse error: syntax error, unexpected T_SL on line 23

這裏是第23行:

$selectorder = <<<ORDER 

這是在上下文中:

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

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

什麼導致此錯誤?

我個人不知道什麼<<<做,從來沒有使用過它,我是從一個教程。我試圖谷歌,但你不能谷歌這樣的:(

+2

對於誰已經得到了這個錯誤,但沒有使用定界符語法問題可能是因爲顛覆衝突消息插入相同的支架到文件 – icc97 2015-02-20 15:52:21

回答

47

檢查空白<<<ORDER後不應該有空白字符

+0

這正是它的原因。在第23行 – 2010-08-06 16:05:44

+1

末一個單一的空格這個答案讓我類似的無果而終後,網頁搜索「PHP <<<」修我額外的空間後,我發現PHP的文檔指定開幕標識必須由換行符緊接着,看這裏的heredoc部分:http://php.net/manual/en/language.types.string.php – sdjuan 2013-09-03 21:46:21

+0

也應該沒有分號。 – 2014-04-12 20:28:18

4

<<<是定界符字符:See manual

+0

我喜歡在年底有一個空間,其他人:「<<<訂單「..感謝給我看手冊。我從來沒有想過這件事。 – 2010-08-06 15:50:30

+0

什麼是downvote? – NullUserException 2010-08-06 15:55:40

1

確認。沒有SPACE /壓痕結束ORDER;

+0

顯然,關閉標識符不是問題。 – NullUserException 2010-08-06 15:57:20

0

這就是所謂的「定界符」之前,它允許您指定的大字符串,而不使用引號。在這種情況下,它看起來像你使用我把JavaScript代碼放入一個變量中。既然你<<<ORDER開始的字符串,你應該能夠與ORDER;完成它,因爲你—但你需要確保ORDER;出現在行的開始,之前沒有空格。

1

PHP定界符不符合%符號得到很好了,下面也導致Parse error: syntax error, unexpected T_SL

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

Nih! 

%%SHRUBBERY%%; 
?> 
1

另外,還要確保你有3個 '< < <'。忽略一個會拋出這個錯誤。此外,如果您使用NOWDOC,請確保您的託管服務提供商安裝了​​PHP 5.3。另外如果你的PHP環境低於5.3,不要使用雙引號或單引號。

相關問題