Para detectar erros de sintaxe no PHP, podemos executar o php, no terminal de comandos, passando o parâmetro "-l" (lint), conforme o exemplo:
$ php -l script.php
Isso é útil quando queremos apenas saber se há erros de sintaxe, mas não queremos executar, de fato, o script.
OK, mas muitos já conhecem este recurso. O problema é que, as vezes, executar este comando não retorna exatamente onde está o erro (diz apenas que há um erro). Nestes casos, você recebe a seguinte mensagem:
$ php -l script.php Errors parsing script.php
Recentemente descobri que essa mensagem simplificada é mostrada em função da configuração da diretiva error_reporting (no php.ini). Para que sejam mostrados detalhes sobre o erro de parser, você precisa configurar a diretiva error_reporting para, pelo menos, exibir erros do tipo E_PARSE.
Já falei sobre configurações do php.ini, e sobre máscaras binárias, que são necessárias para configurar a diretiva error_reporting, então leia estes artigos para mais detalhes.
Uma forma simples de evitar a mensagem simplificada é utilizar o parâmetro "-n", que diz ao PHP para não utilizar o php.ini ou o php-cli.ini. Então, o valor da diretiva error_reporting utilizado passa a ser o seu valor padrão, que é E_ALL & ~E_NOTICE (todos os erros, exceto notificações). Como o valor E_ALL inclui o valor E_PARSE (pela máscara binária), então ela mostra os erros de parser. Veja o exemplo:
$ php -ln script.php Parse error: syntax error, unexpected '=' in script.php on line 3 Errors parsing script.php
Esta é a forma simplificada, mas pode ser que você queira utilizar as configurações do php.ini, mas queira mudar apenas o valor da diretiva error_reporting. Neste caso, use o parâmetro "-d" para configurá-la manualmente:
$ php -d error_reporting=E_ALL -l script.php PHP Parse error: syntax error, unexpected '=' in script.php on line 3 Parse error: syntax error, unexpected '=' in script.php on line 3 Errors parsing script.php
1 comentário
Rubens será que vc pode me ajuda com scripts do meu php
Postar um comentário
Nota: fique a vontade para expressar o que achou deste artigo ou do blog.
Dica: para acompanhar as respostas, acesse com uma conta do Google e marque a opção "Notifique-me".
Atenção: o blogger não permite inclusão de tags nos comentários, por isso, use algum site externo para postar seu código com dúvidas e deixe o link aqui. Exemplo: pastebin.com