O jeito como o PHP trata as situações e adversidades são no mínimo interessante, o código muitas vezes pode ser entendido de algumas formas o que definitivamente não é bom. Uma expressão não pode ser subjetiva ou "cruze os dedos e torça pra dar certo". O php através de sua irrelutável flexibilidade nos coloca em situações no entanto embaraçosas, tipo:
echo print 3 + 2; // output 51
São questões como essa que nos surpreende, não bastando apenas escrever mas compreender o que escrevemos. Olhando direitinho o código acima faz sentido não é?...faz? o nosso código executa cada função na sua respectiva ordem o que é normal o echo executa print que executa e imprime a expressão 3 + 2 resultando em 5, o retorno do print é sempre 1, logo temos 51 porque print imprime para depois retornar o número 1 que será impresso pelo echo, entendido?.
echo print (3) + 2 * 2; // output 71 - 2 * 2 = 4, 4 + 3 = 7
echo print (3 + 2) * 2; // output 101 - 3 + 2 = 5, 5 * 2 = 10
tanto o print como o echo são construtores da linguagem o que quer dizer que o uso dos parênteses não são obrigatórios, porém apenas o print retorna algum valor e pode ser usado como parte de uma expressão.
$idade = 18;
echo $idade < 18 ? print 'menor' : print 'maior';
e aí qual a saída do código acima? se você pensou 'maior1' acertou.
Nenhum comentário:
Postar um comentário