Created
November 21, 2013 00:24
-
-
Save andrebian/7573806 to your computer and use it in GitHub Desktop.
Condicional
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Exemplo de implementação recebendo um post sem tratamento, o que quero esclarescer é forma de realizar a condicional apenas | |
$itemRecebidoViaPost = $_POST['item']; | |
// Primeira forma | |
if ( $itemRecebidoViaPost == 'item-desejado' ) { | |
} | |
// Segunda forma | |
if ( 'item-desejado' == $itemRecebidoViaPost ) { | |
} |
Lendo códigos de alguns frameworks sempre me deparei com a segunda forma, que pra mim soa bem estranha. Mas a resposta que me deram na época foi a mesma que o @juniorb2ss disse, por motivos históricos alguns devs fazem valor_constante == $variavel
para evitar erros silenciosos no código.
Em baixo nivel, é impossível haver otimização nesse caso, o parser sempre precisaria ver os valores dos dois lados da expressão.
Então como disseram, é algo bem pessoal.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@andrebian,
Eu gosto e prefiro a primeira forma. Faço da primeira forma já faz tanto tempo, que acho estranho a segunda forma, mas é uma questão pessoal apenas.
Pensando em boas práticas, como levantado pelo @danizord, acho que a segunda forma é interessante e adequada. Alguns frameworks de testes unitários, como PHPUnit ou JUnit utilizam a segunda forma, onde o primeiro argumento é o valor esperado e o segundo o valor atual.
Porém, também não é regra nos frameworks. Se observar o Microsoft TestTools, a API do Assert está mais para o primeiro formato, que para o segundo. No caso do Assert.equals, ela considera dois objetos, independentemente da ordem. Mas se observar bem, o método Assert.instanceOfType utiliza a primeira forma mais explicitamente.
Especificamente no que se refere ao PHP, por não existir uma padronização e nenhuma documentação de referência de boas práticas sobre esse tema, ficamos na questão de preferência pessoal ou, como no caso de algum código como mencionado pelo @danizord, o padrão adotado para aquele código específico.