quarta-feira, 30 de abril de 2008

Economizando nos caracteres

Cada vez mais me convenço de que a programação é uma arte! E como cada artista tem seu próprio estilo, cara programador é capaz de desenvolver seu próprio método de organizar seu código fonte.

É muito comum em alguns sistemas, dependendo do estudo de caso, testar a existência de uma determinada variável antes de exibí-la na tela. E cada programador tem sua forma favorita de fazer isso em PHP. Seja com if em sintaxe clássica:

if(isset($menu)){
    print($menu);
}

Ou uma forma mais resumida, em casos simples:

if(isset($menu)) print($menu);

Outro método muito utilizado utilizado é o if ternário:

echo isset($menu) ? $menu : '';

Hoje pela manhã, recebemos no grupo de discussão sobre o CodeIgniter, uma sugestão do nosso amigo Edinho era basicamente substituir esta sequência de aninhamentos por um código simples, de apenas uma linha:

isset($menu) AND print($menu);

Em teoria, o PHP só executa o segunto teste (após o AND) se o primeiro for verdadeiro. Ou seja, a variável $menu só será exibida se o valor retornado por isset() for true, caso contrário o print() nem será executado.

Um outro exemplo:

$a=1;
true OR $a=2;
echo $a; //imprimirá 1

O resultado de $a será 1, já que a primeira condição é verdadeira. Caso fosse falsa, o código após o operador OR seria executado, alterando assim o valor de $a para 2.

Um terceiro caso:

!empty($valor) OR $valor=3;

Em palavras, a variável $valor não pode ser vazia 'ou' será atribuido 3 a ele.

Esse método de programação é muito utilizado em Ruby, e também incentivado no framework Kohana. Mas o pessoal do Zend Framework pregam um estilo mais tradicional de programação, onde são utilizados <?php echo $var; ?> em vez do simpático <?= $var; ?>.

Talvez esse possa não ser o mais eficaz dos métodos; talvez você prefira utilizar métodos de verificação mais simples de ler; mas em uma coisa temos que concordar: programadores são verdadeiros artistas! ;-)

0 comentários: