Jump to content


Photo

Dá Pra Criar Uma Função E Depois Chamá-la


  • Faça o login para participar
20 replies to this topic

#1 Celão

Celão

    Marcelo Santino

  • Usuários
  • 525 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 20/10/2004, 00:49

opa blz??

eu queria saber se eu posso fazer assim.
tipo, criar meus códigos todos no topo da página, em funções tipo
function funcao1()
{
...
}
function funcao2()
{
...
}
daí tipo, lá no meio da minha página, eu chamo essa funçao aonde eu queia executála, tipo, vamos supor q eu queria chamar a função dentro de uma tabela como resultado de uma busca ao banco de dados
<table>
<tr><td><? //chama a funcao1 ?></td></tr>
<?table>

sacaram?

daí eu não sei se pode ser assim, e não sei como eu faria pra chamar a função depois!

alguem pod eme ajudar??

valeu...
Marcelo Santino - DBA SQL Server/Oracle
Banco de dados e Tecnologia: www.bau-de-dev.com

#2 Cristiano Galdino

Cristiano Galdino

    Dark Defender

  • Administradores
  • 3738 posts
  • Sexo:Masculino
  • Localidade:Brasília, DF

Posted 20/10/2004, 01:11

<?
function teste( $teste ) {
  return( $teste );
}

print( teste( "Meu nome é Cristiano." ) );
?>


<?
function escreve( $texto ) {
  print( $texto );
}

escreve( "Meu nome é Cristiano." );
?>


Entendeu como funciona?
Cristiano Galdino
- http://cristiano.galdino.net/

“Since 2003”


#3 dokkalfr

dokkalfr

    Ich bin der Geist der stets verneint

  • Usuários
  • 203 posts
  • Sexo:Não informado
  • Localidade:Svartheim
  • Interesses:Programação e sexo

Posted 20/10/2004, 01:28

cara ... tu pode até chamar a função e só depois usar!! usando o exemplo do Cristiano:

PHP
<?
escreve
( "Meu nome é Cristiano." );


function
escreve( $texto ) {
print(
$texto );
}
?>

Ainda com dúvida? Os melhores programadores PHP estão aqui
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks

#4 alberto.leal

alberto.leal

    Normal

  • Usuários
  • 79 posts
  • Sexo:Não informado

Posted 20/10/2004, 02:26

soh nao esqueça de um detalhe super importante se vc quiser retornar alguma coisa vc deve passar um parametro na fç...
[ ]'s

#5 Celão

Celão

    Marcelo Santino

  • Usuários
  • 525 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 20/10/2004, 09:34

valeu galera...
eu acho que entendi.

vou testar aqui e qualquer cisa eu pergunto de novo!


valeu...
Marcelo Santino - DBA SQL Server/Oracle
Banco de dados e Tecnologia: www.bau-de-dev.com

#6 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 20/10/2004, 09:37

Geralmente usa-se um arquivo, que seria correspondente a sua biblioteca de funções... algo assim:

Vc tem um arquivo chamado funcoes.php.

Então faz-se um includo no inicio dos arquivos que farão uso destas funções:
PHP
<?php


include "funcoes.php";
escreve("Take the red pill");


?>

------
Mero mortal!

#7 LucasMS

LucasMS

    Super Veterano

  • Usuários
  • 2076 posts
  • Sexo:Não informado

Posted 20/10/2004, 11:58

algumas funcoes podem ser chamadas dentro delas mesmas como:

function Funcao() {

Funcao();

}

#8 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/10/2004, 20:30

Isso é função recursiva. Muito útil, pouco usada e perigosa. Tem que tomar cuidado pra não fazer um loop eterno (como no seu exemplo) e travar o script inteiro.

#9 brunoalves

brunoalves

    Linux user #392843

  • Ex-Admins
  • 1018 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 20/10/2004, 22:43

Muuuito perigosa, pode parar um servidor inteiro (se não derrubarem o site antes que isso aconteça)

Abraço.

#10 Celão

Celão

    Marcelo Santino

  • Usuários
  • 525 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 20/10/2004, 23:50

caraca, sinistro ae!
hehehehe...

perigosinha essa função do carinha ae!
rs...

po, entendi perfeitamente, mas não consegui adaptar ao que eu quero fazer!

tenta dar uma olhada no meu código:
<?
// meus códigos de conexão ao banco de dados...

function mostra($emotions)
	{
  // início da tabela que mostra os emotions
  $query = "select * from t_emotions order by id";
  $resultado = mysql_query($query);
  $numrows = mysql_num_rows($resultado);
  
  if($numrows != 0)
  {
 	 while($r = mysql_fetch_array($resultado))
 	 {
    $emotions = "<tr><td><div align=\"center\">".$r['codigo']."</div></td>";
    $emotions = $emotions."<td><div align=\"center\"><img src=\"../images/emotions/".$r['emotion']."\" width=\"17\" height=\"17\"></div></td>";
    $emotions = $emotions."<td><div align=\"center\"><a href=\"".$_SERVER['PHP_SELF']."?act=altera&id=".$r['id']."\"><img src=\"images/edit.gif\" width=\"16\" height=\"16\" border=\"0\"></a>&nbsp;<a href=\"".$_SERVER['PHP_SELF']."?act=deleta&id=".$r['id']."\"><img src=\"images/delete.gif\" width=\"16\" height=\"16\" border=\"0\"></a></div></td>";
    $emotions = $emotions."</tr>";

    echo $emotions;


 	 }
  }
	}
?>

seria assim que a minha função deveria ficar?
tipo, o código rodou direitinho antes de eu acrescentar as linhas
function mostra($emotions)
{
e a } que fecha a função!

Por que esse código teria que ficar no meio da página, entre os meus códigos html's e eu não queria que ficasse assim.
Daí a intenção de criar a função, pra no meio do meu html eu chamar apenas a função e executá-la!

deu pra entender?

valeu ae...

Edição feita por: Celão, 21/10/2004, 00:01.

Marcelo Santino - DBA SQL Server/Oracle
Banco de dados e Tecnologia: www.bau-de-dev.com

#11 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 21/10/2004, 03:49

Coloque esse código em outro arquivo...

Daí coloca usa include pra chama-lo....

Daí é só aplicar como se estivesse no próprio arquivo mesmo.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#12 Celão

Celão

    Marcelo Santino

  • Usuários
  • 525 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 21/10/2004, 09:37

po, blz, mas não seria demais criar um arquivo pra cada "função" que eu quiser fazer?

a não ser que eu pudesse fazer assim:

no arquivo funcoes.php:
if($_GET['act']==emotions)
{
    bla bla bla...
}
elseif($_GET['act']==outros)
{
    bla bla bla...
}

e daí, no arquivo principal eu posso fazer assim:
include("funcoes.php?act=emotions")
???????
posso fazer assim?

pq se puder é uma boa!

mas se não, é melhor deixar no meio do meu código html mesmo. Se não vai ficar muita bagunça de arquivo pra cada coisa!

to errado?

valeu...
Marcelo Santino - DBA SQL Server/Oracle
Banco de dados e Tecnologia: www.bau-de-dev.com

#13 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 21/10/2004, 09:44

O que vc quer dizer com 1 arquivo para cada coisa?

Funções geralmente são genericas, seria uma funcionalidade que vc precisaria utilizar em vários momentos e em vários arquivos diferentes.

Exemplo claro de funções que podem servir a todo momento:
conveter_data(); data_hoje(); calcula_niver(); conectar(); desconectar(); mostra_foto(); palavra_proibida(); ...

Diferente de:
grava_cliente();
Se esta função for utilizada somente para fazer um INSERT na tabela cliente, não faz realmente muito sentido a existencia dela num arquivo separado.
------
Mero mortal!

#14 Celão

Celão

    Marcelo Santino

  • Usuários
  • 525 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 21/10/2004, 14:47

Diferente de:
grava_cliente();
Se esta função for utilizada somente para fazer um INSERT na tabela cliente, não faz realmente muito sentido a existencia dela num arquivo separado.

foi exatamente aí q eu quis chegar!

se a função grava_cliente() é executada somente na página1.php não vale a pena eu destacá-la no arquivo de funções (funcoes.php) já que ela não tem utilidade nas outras páginas!

blz. então, já que ela só será utilizada na pagina1.php, eu devo escrevê-la somente nessa página. Mais especificamente no início dela (pois creio eu que todos os códigos PHP's devem estar no início de página!).

Pensando asim então, digamos que essa função grava_cliente() insira os dados no banco e me retorne uma variável $mensagem = "Dados inseridos com sucesso!";

Como eu faço pra chamar essa função no meio do código html?

tipo:
PHP

<?
include("conexao.php");

function
grava_cliente()
{
  $query = mysql_query("insert into...");
  $mensagem = "<table><tr><td>";
  $mensagem = $mensagem."Dados inseridos com sucesso!";
  $mensagem = $mensagem."</td></tr></table>";
}
?>


daí, mais lá pro final do meu documento eu tenho:
PHP

<body>
blablabla...
blablabla...
blablabla...

<? // aqui eu chamaria a função grava_cliente() ?>
</body>


entendeu?

valeu ae...

Edição feita por: Celão, 21/10/2004, 14:50.

Marcelo Santino - DBA SQL Server/Oracle
Banco de dados e Tecnologia: www.bau-de-dev.com

#15 ThalesWeb

ThalesWeb

    Veterano

  • Usuários
  • 1435 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 21/10/2004, 15:19

PHP

<body>
blablabla...
blablabla...
blablabla...

<? grava_cliente(); ?>
</body>

Thales Santos




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq