PHP: O Tolerável

junho 13, 2008

1<?
2 $var = Fruta;
3 echo “Eu gosto de comer {$var}; // retorna Eu gosto de comer Fruta 
4 ?>

Droga, Fruta era uma string e esqueci das aspas, agora vai dar erro de sintaxe.
Não tem problema! o PHP trata isso para você, primeiramente o interpretador tentará encontrar a constante Fruta, caso não encontre, ele converterá automaticamente para string.
Agora se existir tal constante, ele faz o esperado.
Segue exemplo abaixo: 

1 <?
2 define(“Fruta, “Laranja);
3 $var = Fruta;
4 echo “Eu gosto de comer {$var}; // retorna Eu gosto de comer Laranja
5 ?>

Isso também vale para arrays, quando você tenta acessar uma chave sem as devidas aspas você está acessando a constante.
Por exemplo:

1 $Array[teste] = Maça;

O PHP procura o valor da constante teste para setar como chave desse array, se não encontrar ocorre o mesmo procedimento, ele converte para string assim setando teste como chave do array.
Agora se você fizer:

1 define(teste, chegadeteste);
2 $Array[teste] = Maça;

Sua nova chave será chegadeteste.
Isso vale tanto para atribuição de valores como para recuperação.
Por isso tome cuidado, sempre que for utilizar uma string como chave de um array nunca se esqueça das aspas, pois se você não utilizar aspas e alguém definir uma constante com o mesmo nome, seu array pode se comportar de forma inesperada.

Sem contar que utilizando aspas corretamente você economiza processamento e evita que o PHP fique procurando por constantes para depois transformar em string.

[UPDATE]
Devido as muitas reclamações, segue a nota:
Nunca utilize essa técnica, estamos aqui somente para mostrar como funciona o interpretador do PHP. Essa é uma má prática de programação, além de poder gerar um E_NOTICE.
[/UPDATE]