Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal eu estou com uma dúvida quanto ao verdadeiro uso de funções.
Ouvi dizer que funções não devem dar echo e que somente devem retornar valores.
Mas já vi muitas por aí fazendo as duas coisas, dando echo e retornando algo.
Por isso estou com essa dúvida e queria um auxilio.
Um exemplo:
function busca_valor($parametro) {
$Conn = Registry::getInstance()->get( 'PDO' );
$result = $Conn->query("SELECT * FROM tabela WHERE id = ".$parametro."");
foreach ( $result->fetchAll( PDO::FETCH_OBJ ) as $valor ){
echo $valor->titulo;
}
return alguma coisa ou o valor da saida;
}
busca_valor(1);
Neste caso iria imprimir "Titulo do registro 1"
Quando usar echo e quando usar return? Pelo que entendi quando você manda um valor pra função então você deve ter uma saída que seria o return. Estou certo?
Outra, esta função desta maneira está correta? com echo e return no final?
Pois são detalhes pequenos que acabam as vezes confundindo nossa cabeça.
Valeu
Caro H4X0R
Deixa ver se entendi direito.
VocÊ então sempre chama as funcções assim?
echo idade('05/05/1990');
Fiz uns testes do seu exemplo e entendi que se dentro da função tem echo então na chamada dela não preciso chamar com echo.
Ex:
function alguma_coisa(){
return 'string';
}
echo alguma_coisa();
function alguma_coisa(){
echo 'string';
}
alguma_coisa();
Seria isso mesmo?
Sim.
O echo, como disse anteriormente é somente uma das inúmeras funções que temos no PHP. Você pode utilizar o echo dentro de funções à vontade, e tudo que estiver nele será dito pelo programa.
O return apenas informa ao programa que o chamou o que deve ser retornado.
Por exemplo: A função trim, se ocultado o segundo parâmetro, serve para retirar espaços das laterais das strings.
Se na função trim existisse um echo 'Numero de espaços retirados: '.$conta;, toda a vez que utilizassemos essa função, ele iria dar esse maldito echo. Ao contrário disso, ele simplesmente tem um return, onde seu valor é a string, sem os espaços em volta.
Por exemplo:
<?php
trim(' 123 ');
?>
O que retorna?
<?php
echo trim(' 123 ');
?>
E agora?
Espero ter esclarecido.
Até mais
Caro H4X0R valeu pelas dicas, entendi bem agora!
Bom amigo, na verdade nada te impede mesmo de usar um echo dentro da função.
Mas pelo que reparei, essa aí é a parte do sistema que cuida da parte lógica e persistente [banco de dados] da sua aplicação.
Isso vai contra o conceito de separação de camadas do MVC (Model/View/Controller).
Como você já está utilizando alguns padrões, como Registry, que é algo mais 'avançado', recomendo também ler um pouco sobre MVC:
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://pt.wikipedia.org/wiki/MVC
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://www.oracle.com/technetwork/java/mvc-140477.html
Valeu Rick, vou dar uma lida com calma
Cara, até onde eu sei, não existe uma regra que impõe se você deve usar return ou echo.
A diferença é a seguinte (vou usar a função que colei no outro tópico, pois estava copiada):
Se você fizer:Não vai retornar NADA.
Mas se você fizer:
<?php
echo idade....
?>
Vai retornar a idade da pessoa.
Se na função tivesse echo ao invés de return, a primeira opção bastaria para informar a idade.
Você pode utilizar quantos echos quiser, porém cada programador tem um modo diferente de escrever seus programas. Eu, para padronizar minhas funções, não escrevo echo em nenhuma. Uso apenas return. Mas isso é costume mesmo.
Entendeu?
Até mais.