Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafaacampos

Chamada de função

Recommended Posts

Boa noite pessoal, estou com uma dúvida em uma coisa que vi em um livro.
estou aprendendo PHP agora, peço desculpas pela "noobisse".


<?php
		function lista_estados($nome_campo="USR_UF", $MULT=FALSE) {
			$ufs = array("SP"  => "São Paulo",
						"RJ" => "Rio de Janeiro",
						"ES" => "Espírito Santo",
						"MG" => "Minas Gerais",
						"PR" => "Paraná");
			$ret = "<select name='$nome_campo'";
			$ret .= ($MULT) ? " MULTIPLE" : "";
			$ret .= ">\n";
			foreach($ufs as $chv => $vlr) {
				$ret.= "<option value='$chv'>$vlr</option>\n";
			}
			$ret .= "</select>\n";
			return $ret;
		}
	?>

minha dúvida é o seguinte: no livro está utilizando essa função em PHP para substituir a criação de um <select> no HTML.
porém na hora de chamar a função ela é feita assim:

<?=lista_estados(); ?>

eu gostaria de entender o porque de só funcionar com esses delimitadores e esse sinal de igual após o delimitador.

eu tentei fazer a chamada por curiosidade:

<?php lista_estados(); ?>

<?php=lista_estados(); ?>

e não funciona...

Alguém sabe o motivo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente:

<?php echo lista_estados(); ?>
As suas duas tentativas que deram erro:

1 - A primeira foi porque a função precisa de um echo para ser exibida, caso contrário nada será enviado para o navegador.

2 - Não existe <?php=, apenas <?= que tem a mesma função de <?php echo. Observe que <? e <?= dependem de open_short_tags ativa e são muito pouco aconselháveis, prefira usar sempre <?php echo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta, realmente funcionou, mas por que uma função comum eu conseguiria chamá-la sem o echo e aqui precisa ?

 

por exemplo:

function oi() {
      echo "oi";
}



<?php oi(); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade é o modo como você está dizendo para a função retornar os dados, observe que no primeiro post você usou:

return $ret;

 

Já no segundo caso:

echo "oi";

 

Ou seja, no segundo caso você já está dando o echo dentro da função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.