Não importa o quão cuidadosos sejamos ao escrever programas, os erros são inevitáveis. Esses erros geralmente confundem o compilador PHP. As mensagens de erro do compilador não são apenas inúteis, mas muitas vezes frustrantes se os desenvolvedores não entenderem o que elas significam.
Ao compilar um script PHP, o compilador PHP faz o possível para relatar o primeiro problema que encontrar. Isso cria um problema: o PHP só consegue reconhecer o erro quando ele ocorre (esse problema é descrito em detalhes posteriormente neste artigo). É por esta razão que o compilador aponta que a linha com erro pode parecer sintaticamente correta na superfície, ou pode ser uma linha que não existe!
Uma melhor compreensão das mensagens de erro pode reduzir significativamente o tempo gasto na identificação e correção do que está errado. Portanto, neste artigo, tentarei esclarecer os diversos tipos de mensagens de erro do PHP e como entender corretamente o significado de várias mensagens de erro durante o processo de desenvolvimento.
O conteúdo descrito neste artigo não tem nada a ver com a versão do PHP que você está usando, pois os diversos erros descritos neste artigo não se limitam a erros específicos em uma determinada versão. Além disso, presumimos que você seja um programador júnior ou intermediário e esteja envolvido em programação há meio ano ou um ano.
Como funciona o compilador
Para entender por que o compilador relata um erro em uma determinada linha, você deve primeiro entender o mecanismo pelo qual o compilador analisa o código PHP. Não vou entrar em detalhes sobre isso neste artigo, mas discutiremos alguns conceitos simples que têm maior probabilidade de levar a erros.
Declaração de variável
Se você declarar uma variável em uma instrução, o método específico será o seguinte:
$variable = 'value'
O compilador primeiro encontra o valor da metade direita da instrução (ou seja, tudo que está no lado direito do igual; sinal). Em alguns livros de programação, isso é representado como RHS (metade direita) da instrução. É esta parte da declaração que muitas vezes causa erros. Se você usar a sintaxe incorreta, receberá um erro de análise.
Errode análise
: Erro de análise, T_WHILE inesperado em c:\program files\apache group\apache\htdocs\script.php na linha 19
Os erros de análise ocorrem um após o outro sempre que o erro anterior é determinado Continua aparecendo. Como o PHP para de executar o script após o primeiro erro de análise, depurar e corrigir essa série de erros pode ser particularmente cansativo.
Além disso, os erros de análise contêm muito pouca informação, quase nenhum relatório do número da linha onde o erro ocorreu. A razão específica é que quando ocorre um erro, o compilador determina que a sintaxe de várias linhas deve parecer válida até encontrar uma sintaxe inválida. O caso mais provável é que palavras predefinidas sejam usadas na expressão, por exemplo
while = 10 ; / Bad ? while é uma palavra predefinida e não pode ser atribuída a um valor.
Palavras predefinidas incluem while, function, etc. Se o PHP usa para avaliar seu código, você não pode usar essas palavras predefinidas para nomear variáveis. isso, o PHP reportará mais erros, que você não suporta.
Em relação a esse problema, o exemplo a seguir pode ajudá-lo. Por favor consulte e leia o código PHP mostrado abaixo:
<?php
$b = algum valor
if($b == algum valor){
imprimir Olá mundo!;
}
?>
O erro está na linha $b = (falta ponto e vírgula no final da instrução), então o erro deve ser um erro de análise: falta ponto e vírgula na linha 3, certo? Não deve ser determinado com base no analisador:
Erro de análise: erro de análise, T_IF inesperado em c:\arquivos de programas\apache
group\apache\htdocs\ereg2.php na linha 4
Na linha 4, a sintaxe da instrução if() está correta. Então, o que está confundindo o compilador? A pista é a parte inesperada do T_IF. Quando ocorre um erro T_??? inesperado, significa: o compilador descobriu que uma palavra predefinida aparece em uma posição onde não deveria aparecer. T_IF representa if(), T_WHILE representa while(), T_FOR representa for(), etc.
Felizmente, a causa de alguns erros também é simples:
a instrução não termina com ponto e vírgula (;), como no exemplo acima. As aspas estão faltando na string.
Alguns outros erros comuns
O erro mais comum que vejo é quando não fechamos uma função ou um loop com uma chave ( } ). Este é provavelmente o erro mais comum e irritante.
O código específico é o seguinte:
function UselessFunction() {
for($i < 0; $i < 10; $i++){
}
O seguinte erro será gerado:
Erro de análise: erro de análise, $ inesperado em c:\arquivos de programas\apache
group\apache\htdocs\ereg2.php na linha 9
Como a função UselessFunction não termina com chave (}), o compilador PHP continua procurando pela chave de fechamento até chegar ao final do arquivo. Como o compilador não encontra uma chave correspondente, ele relata um erro de final de arquivo.
Se a hierarquia do código for refletida corretamente, as mensagens de erro se tornarão muito óbvias. Se a estrutura hierárquica do código não estiver marcada, será quase impossível descobrir o que foi esquecido no final. Portanto, lembre-se de indicar a hierarquia do seu código. A tecla Tab facilita isso. Também será mais fácil para os desenvolvedores subsequentes compreender a estrutura do código e modificá-la.
Erros do MySQL
Outra mensagem de erro extremamente irritante é o erro mais comum do MySQL, que muitas vezes causa dores de cabeça para novos usuários de PHP: Aviso: O argumento fornecido não é um recurso de resultado válido do MySQL em...
A linha com o erro relatado acima Pode ser:
while ($row = mysql_fetch_array($result)) {
O parâmetro $result não é um recurso válido. Em inglês significa que mysql_fetch_array não pode ser processado porque a consulta falhou. A sintaxe de qualquer consulta é inválida (você deve copiar e colar a consulta na referência do console MySQL para testar) ou a conexão com o banco de dados falhou (nesse caso, você deve verificar novamente o nome de usuário, senha, etc.).
Prevenindo Erros
Como primeiro passo, os programadores inteligentes podem tomar as seguintes medidas para eliminar os seguintes erros:
· Não pense em adicionar um ponto-e-vírgula no final de cada instrução - isso deve se tornar um hábito.
· Sempre indique a hierarquia do seu código sempre que possível. Isso permitirá que você veja se esqueceu de adicionar colchetes em locais como chamadas if ou no final de funções.
· Por favor use um editor com destaque de sintaxe (como HTML-Kit). Com a ajuda desse editor, você pode determinar se esqueceu de adicionar uma citação, se está faltando um ponto e vírgula, etc.
Conclusão
Neste artigo, temos uma certa compreensão de alguns erros aparentemente sem sentido que o compilador PHP pode relatar. Precisamos aplicar o que aprendemos para evitar erros e como corrigi-los quando eles ocorrerem. A depuração é uma das partes mais importantes do trabalho de um desenvolvedor. Melhorar a eficiência da depuração pode acelerar bastante o andamento de todo o trabalho e reduzir o tempo necessário para concluir um projeto. Também pode reduzir significativamente a pressão mental causada por falhas de código.