Oi Marco,
No ruby utilizam bastante este recurso, no php só vi no Kohana este uso.
O teste não é usado como teste.
Parte do princípio que se o primeiro teste de uma condição com 'OR' for
'True' ele nem rodará o seguinte.
ex:
$a=1;
true OR $a=2;
echo $a; //imprimirá 1
Do mesmo modo se o primeiro teste resultar em 'False' numa condição 'AND'
ele nem testará o segundo.
empty($valor) AND $valor=3;
//repare que após o AND não há uma comparação e sim uma atribuição que
somente ocorrerá se $valor for vazio
//$valor=3 na verdade retorna 3 mas não importa para o teste pois ele
termina com ";", ou seja não há chaves de abertura e fechamento para indicar
o bloco que será executado caso a condição resultante seja true.

talvez mais claramente:
!empty($valor) OR $valor=3;//$valor não pode ser vazio 'ou' será atribuido 3
a ele.

Abs
Edinho Almeida





2008/4/22 Marco Telles <[EMAIL PROTECTED]>:

> Oi Edinho, problemas acho que não tem, porém no Zend, eles pregam entre
> outras coisas a usar a sintaxe completa, tipo:
> <?php echo $blabla; ?> no lugar de <?=$blabla; ?> e tem outras coisas no
> manual, que agora não me lembro.
>
> Agora, só uma coisa, uma vez que print retorna sempre 1, qual a
> finalidade de um teste desse ?
>
> Outra coisa, isso acredito que funcione em funções que retorne um
> boolean, já viu nos casos de função retornando string ou números ? O php
> normalmente converte os tipos, mas num caso de decisão, é correto fazer
> isso ?
>
>
> Abs
>
> Muita sorte para nós!
>
> Marco Telles
>
>
>
> Edinho Almeida escreveu:
> > Me desculpem a mensagem cortada,
> >
> > Teclei TAB e enter querendo criar identação, porém foi para 'send' e
> > enviou o email.
> >
> > Enfim,
> > Alguém vê problemas em utilizar este tipo de sintaxe ?
> >
> > //na view
> > isset($menu) AND print($menu);
> >
> > //em vez de:
> > if(isset($menu)){
> >     print($menu);
> > }
> >
> > Outro exemplo:
> >
> > //no controller
> > $data['menu'] = $result_menu OR $data['menu'] = ' ';
> > $this->load->view('pagina', $data);
> >
> >
> > --
> > Abs
> > Edinho Almeida
> > 11 3711-7074
> > 11 3564-8906
> >
> >
> >
> > --
> > Abs
> > Edinho Almeida
> > 11 3711-7074
> > 11 3564-8906
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Lista mailing list
> > [email protected]
> > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> >
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>



-- 
Abs
Edinho Almeida
11 3711-7074
11 3564-8906
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a