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 porque 2 * 2 = 4 => 4 + 3 = 7
echo print (3 + 2) * 2; // output 101 porque 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, o que você acha dessa maneira com que o php trata as coisas que muitas vezes para nós é cabuloso?
Edição feita por: Hábner Nascimento, 08/10/2009, 13:31.