2010-08-06 11 views
20

estoy recibiendo este error:Error de análisis: error de sintaxis, T_SL inesperado en la línea 23

Parse error: syntax error, unexpected T_SL on line 23

Aquí está la línea 23:

$selectorder = <<<ORDER 

Aquí está en contexto:

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

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

¿Qué está causando el error?

Yo personalmente no sé lo que <<< hace y nunca he usado, lo obtuve de un tutorial. Traté de google, pero no se puede google personajes como que :(

+2

Para otras personas que tienen este error pero no han utilizado la sintaxis heredoc el problema puede ser porque un mensaje de conflicto de subversión ha insertado los mismos corchetes en el archivo – icc97

Respuesta

47

Compruebe si hay un espacio en blanco después de <<<ORDER No debe haber espacios en blanco

+0

Esto es exactamente lo que era. Un único espacio al final de la línea 23. –

+1

Esta respuesta me ayudó después de una búsqueda web similar infructuosa para 'php <<<' Después de arreglar mi espacio adicional, encontré los documentos PHP que especifican que el identificador de apertura debe seguirse inmediatamente por una nueva línea, ver la sección heredoc aquí: http://php.net/manual/en/language.types.string.php – sdjuan

+0

Tampoco debe haber punto y coma. –

4

<<< es para heredoc:. See manual

+0

Tenía un espacio al final como: "<<< Solicitar "... gracias por mostrarme el manual. Nunca me hubiera dado cuenta de eso. –

+0

¿Para qué sirve el downvote? – NullUserException

1

Asegúrese. que no hay ESPACIO/INDENTACION antes de terminar ORDER;

+0

Claramente, el identificador de cierre no es el problema. – NullUserException

0

ha llamado "sintaxis Heredoc", y que le permite especificar las grandes cadenas sin utilizar comillas. En este caso, parece que estás usando i t poner código JavaScript en una variable. Desde que inició la cadena con <<<ORDER, debe poder terminarla con ORDER;, ya que tiene —, pero debe asegurarse de que ORDER; aparece al comienzo de una línea, sin espacios en blanco antes.

1

PHP Heredoc no se lleva bien con el símbolo%, y el siguiente también causa Parse error: syntax error, unexpected T_SL:

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

Nih! 

%%SHRUBBERY%%; 
?> 
1

También asegúrese de que usted tiene 3 '< < <'. Omitir uno arrojará este error. Además, si usa NOWDOC, asegúrese de que su proveedor de hosting tenga instalado php 5.3. Además, si su entorno php está por debajo de 5.3, no use comillas dobles o comillas simples.

Cuestiones relacionadas