Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucaswxp

Erros comuns com PHP

Recommended Posts

Olá pessoal o/Irei falar de algo básico, util, principalmente para quem está iniciando com PHP. Veremos aqui erros simples, porém que pode gerar muitos problemas para um iniciante (ou até mesmo para alguém mais experiente).Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'TRADUÇÃO: Erro de sintaxe, inesperado T_STRING, esperado ',' ou ';'

<?phpecho 'Olá!'fazAlgumaCoisa();?>

De uma olhada no código, esquecemos de colocar o ponto e vírgula no final da segunda linha:

 

 

...echo 'Olá!'; // <-----

Parse error: syntax error, unexpected $endTRADUÇÃO: Erro de sintaxe, inesperado $end

 

 

 

 

<?phpif (true){   if(false){   }?>

Veja que esquecemos uma chave ali. Aqui foi um IF, poderia ser também de um foreach, função, switch etc...

 

 

 

 

...    } }?>

Parse error: syntax error, unexpected '{'TRADUÇÃO: Erro de sintaxe, inesperado '{'

 

 

 

 

<?phpif(funcao1() && funcao2() || funcao3(funcao4(funcao5() , funcao6())){ // faz alguma coisa}?>

Aqui nós nos esquecemos de fechar um parêntese, veja:

 

 

 

 

...funcao6())))#<--- adicionamos + um{...

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'TRADUÇÃO: Erro de sintaxe, inesperado T_STRING, esperando ',' ou ';'

 

 

 

 

<?phpecho 'Eu vendo meus CD's por R$15 cada.';?>

Aqui nós esquecemos de escapar a aspa simples de CD's, portanto o PHP está interpretando como se a string tivesse acabado aqui:

 

 

 

 

echo 'Eu vendo meus CD' (...)

Existem varias solução, vamos ver algumas:

 

 

 

 

/** 1*Usamos uma barra invertida para escapar a aspa**/echo 'Eu vendo meus CD's por R$15 cada.';/** 2*Trocamos as aspas simples que delimitam a string por aspas duplas**/echo "Eu vendo meus CD's por R$15 cada.";/** 3*Forma alternativa de delimitação de strings:**/echo <<<FIMEu vendo meus CD's por R$15 cada.FIM;

Notice: Use of undefined constant indice - assumed 'indice'TRADUÇÃO: Uso de constante indefinida indice - assumido 'indice'

 

 

 

 

<?php$array = array('indice' => 'Valor qualquer');$array[indice];?>

Veja que o índice "indice" existe no array $array, porém quando nós tentamos chamar $array[indice] uma noticias é lançada. Isso é porque o índice "indice" existe, não a constante, o certo é delimitarmos o índice, tratando-o como string:

 

 

 

 

$array['indice'];

Agora irá tudo OK =)Notice: Undefined index: descricaoTRADUÇÃO: Índice indefinido: descicao

 

 

 

 

<?phperror_reporting(E_ALL);$array = array();$array['descricao'];?>

Veja que no $array estamos tentando acessar um valor pelo índice "descricao", porém nós não definimos este índice/valor em $array, veja como resolver:

 

 

 

 

<?php$array = array('descricao' => 'Alguma coisa aqui.');$array['descricao'];?>

Warning: include(arquivoInexistente.php) [function.include]: failed to open stream: No such file or directoryTRADUÇÃO: Falha ao abrir: Nenhum arquivo ou diretório

 

 

 

 

<?phpinclude 'arquivoInexistente.php';?>

Estamos tentando incluir um arquivo que não existe. Certifique-se de que o arquivo que você está tentando incluir existe, e se existir, veja se você escreveu o nome corretamente.Variável não é interpretada

 

 

 

 

<?php$nome = 'João';echo 'Meu nome é $nome, legal né?';?>

Veja que estamos utilizando a variável $nome na string, porém quando rodamos o script ela não é interpretada/substituida por "João". Isso porque aspas simples não interpreta variáveis, assim como caracteres como "n" ou "t" por exemplo, a solução é utilizar aspas duplas ou concatenar:

 

 

 

 

// Aspas duplas$nome = 'João';echo "Meu nome é $nome, legal né?";// Concatenação$nome = 'João';echo 'Meu nome é ' . $nome . ', legal né?';

 

Uma outra coisa é se você utilizar um array um erro será lançado, veja este exemplo:

 

 

 

 

 

<?php$dados = array('nome' => 'João');echo "Meu nome é $dados['nome'], legal né?";?>

Isso não funcionará, você teria que delimitar por chaves, isso é aconselhado para qualquer variável que você ponhe dentro de uma string:

 

 

 

 

<?php$dados = array('nome' => 'João');echo "Meu nome é {$dados['nome']}, legal né?";?>

Bom pessoal, ficamos por aqui, foi algo bem básico porém pode ser muito util para quem está iniciando ou até mesmo para quem já tem algum tempo na estrada =)

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Noh o topico mais pratico q jah vi...

evita akela kebração de cabeça... e nos tutoriais e apostilas faltam referencias a possiveis erros de sintaxe...

isso ai cara, topico pratico e direto!

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa adorei!

 

Pra eu que sou iniciante me poupou umas 5 páginas de apostilas! :D

 

As aspas é que mais me confunde, sempre que tem um erro nos meus códigos pode ter certeza de que são as benditas aspas!! :P

Agora sempre vou olhar aqui para saber diferenciá-las! ;)

 

VLW!! LOL

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.