Por que não usar short_tag nos seus códigos PHP

Novembro, 13 2007

Ontem uma pessoa pediu ajuda no #php-br na feenode dizendo que atualizou o php e que agora seus códigos não funcionam mais. Era algum erro de ‘unexpected $end‘. É o sintoma do uso das open_short_tag “<?”.

Por que não usar?

Porque o <? pode ser <?xml e então se código xml vai rodar como PHP, e isso não é uma boa coisa.

Além do mais a maioria das empresas de hosting não habilitam o open_short_tag no php.ini. Então esqueça, jamais, nunca, nunca escreva seus códigos com <? echo “blah” ?>
use sempre o <?php

Um abraço!


Diferença entre require(), require_once(), include, include_once()

Novembro, 11 2007

Pô, quando eu comecei a programar em PHP eu não sabia qual era a diferença dessas funções, e achei a minha resposta com muito esforço. Então aí vai, rapidinho, quanl a diferença.

include(): Tenta incluir uma página. Caso de algum erro, o script retorna um warning (aviso) e prossegue com a execução do script. Aceita a passagem de variáveis (GET) na string. Pode ser utilizado em uma estrutura de condicionais que terá seu efeito perpetuado todas as vezes que for chamado.

Require(): Tenta incluir uma página. Caso de algum erro, o script retorna um fatal error(erro fatal) (Que maravilha!) e aborta a execução do script. Aborta mesmo, já era não roda nada mais dali pra frente. Não aceita a passagem de variáveis (GET) na string. Não recomendo que utilizem nas estruturas condicionais, a menos que se deseje o seu efeito, de ser executada apenas uma vez.

include_once() e require_once(): Idênticas as suas funções simples, porém se o arquivo referenciado já foi incluso na página anteriormente, a função retorna ‘false’ e o arquivo não é incluido. É bom quando temos muitos includes e já estamos perdidos, sem saber o que está incluindo o que.


Qual a diferença entre aspas e apóstrofo? Ou aspas simples e aspas duplas?

Novembro, 11 2007

Aspas duplas: fazem pre-processamento das váriaveis.
Ex:

$var = "olá mundo";
echo  "Resposta: $var"

Resultado:

Resposta: olá mundo

Aspas simples: não fazem pre-processamento das váriaveis.
Ex:

$var = "olá mundo";
echo  "Resposta: $var"

Resultado:

Resposta: $var

Então? Otimize seu código, quando você estiver certo de que não ira ter váriaveis dentro das aspas use aspas simples, assim o PHP não irá ficar procurando váriaveis para pre-processar.