2010-08-06 8 views
20

Ich erhalte diese Fehlermeldung:Parse error: Syntaxfehler, unerwartete T_SL auf der Leitung 23

Parse error: syntax error, unexpected T_SL on line 23

Hier ist die Zeile 23:

$selectorder = <<<ORDER 

Hier ist es in Zusammenhang:

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

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

Was verursacht diesen Fehler?

Ich persönlich weiß nicht, was <<< tut und habe es nie benutzt, ich habe es von einem Tutorial. Ich habe versucht, es zu googeln, aber man kann nicht google Zeichen wie das :(

+2

Für andere Leute, die diesen Fehler haben, aber nicht die Heredoc-Syntax verwendet haben, könnte das Problem daran liegen, dass eine Subversionskonfliktmeldung die gleichen Klammern in die Datei eingefügt hat. – icc97

Antwort

47

Leerzeichen überprüfen nach <<<ORDER Es sollte keine Leer sein

+0

Genau so war es. Ein einzelnes Leerzeichen am Ende der Zeile 23. –

+1

Diese Antwort half mir nach ähnlich fruchtlosen Web-Suche nach 'PHP <<<' Nach der Festlegung meiner zusätzlichen Speicherplatz fand ich die PHP-Dokumente angeben, dass die Öffnungskennung unmittelbar gefolgt werden muss von einem Zeilenumbruch, siehe Der Heredoc-Abschnitt hier: http://php.net/manual/en/language.types.string.php – sdjuan

+0

Es sollte auch kein Semikolon geben. –

4

<<< für heredoc ist. See manual

+0

Ich hatte ein Leerzeichen am Ende wie: "<<< Bestellen "... Danke, dass Sie mir das Handbuch gezeigt haben. Das hätte ich nie herausgefunden. –

+0

Wofür ist der Downvote? – NullUserException

1

Stellen Sie sicher. dass es keine SPACE/INDENTATION ist vor ORDER;

+0

Offensichtlich ist die schließende Kennung nicht das Problem. – NullUserException

0

endet es heißt „heredoc Syntax“ genannt, und es können Sie ohne Verwendung von Anführungszeichen große Strings angeben. In diesem Fall sieht es aus wie Sie i verwenden t um JavaScript-Code in eine Variable einzufügen. Da Sie die Zeichenfolge mit <<<ORDER gestartet haben, sollten Sie in der Lage sein, es mit ORDER; zu beenden, wie Sie — haben, aber Sie müssen sicherstellen, dass am Anfang einer Zeile ohne Leerzeichen vor es auftritt.

1

PHP Heredoc geht nicht gut mit dem Symbol%, und die folgenden Ursachen auch Parse error: syntax error, unexpected T_SL:

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

Nih! 

%%SHRUBBERY%%; 
?> 
1

Auch stellen Sie sicher, dass Sie 3 '< < <' haben. Wenn man es auslässt, wird dieser Fehler ausgelöst. Auch wenn Sie NOWDOCs verwenden, stellen Sie sicher, dass Ihr Hosting-Provider PHP 5.3 installiert hat. Plus, wenn Ihre PHP-Umgebung unter 5.3 liegt, verwenden Sie keine doppelten oder einfachen Anführungszeichen.

Verwandte Themen