Jump to content
Biel.

fazer function aceitar variável externa

Recommended Posts

Direto ao ponto. Pessoal como faço para function abaixo aceitar a variável externa $corAtual .Quero exibir na tela a cor atual na regra if elseif 
NOTA: A $corAtual pode ser replicada para dentro da function , mas não pode está dentro da function . 
Pessoal quero muito fazer isso funcionar. Obrigado !

<?php 
$corAtual = "verde";  // verde  azul
?>

<?php function cores(){?>

<?php 
if($corAtual == "verde"){
print "a cor atual é VERDE";
}
elseif($corAtual == "azul"){
	print "a cor atual é AZUL";
	}
?>

<?php }?>


<?php (cores());?>

 

Share this post


Link to post
Share on other sites

Sabe o que é parâmetro?

<?php
function cores($parametro) {
  switch($parametro) {
    case 'verde':
      $retorno = 'VERDE';
      break;
    case 'azul':
      $retorno = 'AZUL';
      break;
    default:
      $retorno = 'INDEFINIDA';
      break;
  }
  return ("a cor atual é {$retorno}");
}

 

Share this post


Link to post
Share on other sites

Você pode passar como parametro da function ou usar via closure/anonima dependendo da sua necessidade

$corAtual = "azul";
function cores($cor) {
	return $cor;
}
echo cores($corAtual);

ou então via closure/anonima:

$corAtual = "azul";
$cores    = function() use ($corAtual){
	return $corAtual;
};
echo $cores();

Recomendo a leitura:

https://www.php.net/manual/pt_BR/language.functions.php

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal abaixo temos (pg_aprendiz,pg1,pg2,pg3). Estou pegando ($a,$b,$c da pg_aprendiz) e exibindo na (pg1,pg2,pg3) . Quero fazer o seguinte:
      1º com include quero pegar somente $a da pg_aprendiz.php e exibir na pagina1 e que a pagina1 continue tendo normalmente print $a , print $b , print $c
      2º com include quero pegar somente $b da pg_aprendiz.php e exibir na pagina2, e que a pagina2 continue tendo normalmente print $a , print $b , print $c
      3º com include quero pegar somente $c da pg_aprendiz.php e exibir na pagina3, e que a pagina3 continue tendo normalmente print $a , print $b , print $c
       
      pg_aprendiz<br /> <?php $a = 6; $b = 8; $c = 5; ?> <br />---------------------------------------------------------pg_aprendiz<br /><br /> pagina1<br /> <?php include("pg_aprendiz.php"); print $a.'<br />'; // exibe na tela 6 print $b.'<br />'; print $c; ?> <br />---------------------------------------------------------pagina1<br /><br /> pagina2<br /> <?php include("pg_aprendiz.php"); print $a.'<br />'; print $b.'<br />'; // exibe na tela 8 print $c.'<br />'; ?> <br />---------------------------------------------------------pagina2<br /><br /> pagina3<br /> <?php include("pg_aprendiz.php"); print $a.'<br />'; print $b.'<br />'; print $c.'<br />'; // exibe na tela 5 ?> <br />---------------------------------------------------------pagina3<br /><br />  
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal abaixo temos (pg1 e pg2).
      A pagina2 está funcionando normalmente e exibe na tela este resultado 
      nome-> joao email-> teste@gmail.com  
      Pessoal as duas linhas abaixo $nome e $email  esta na pagina1 e está fora do while. Quero replicar as duas linhas $nome e $email para dentro do while, sem include, somente replicar para obter o mesmo resultado que a pagina2 . Alguém tem ideia de como fazer isso? Obrigado!
      $nome  = $linha['nome']; $email = $linha['email'];   
      pagina1 <?php $sql = mysqli_query($con, "SELECT * FROM tab_aprendiz"); ?> <?php while($linha = mysqli_fetch_array($sql)):?> <?php endwhile;?> <?php echo 'nome-> '.$nome;?><br> <?php echo 'email-> '.$email;?> <br>------------------------------------------pagina1.php<br><br> pagina2 <?php $sql = mysqli_query($con, "SELECT * FROM tab_aprendiz"); ?> <?php while($linha = mysqli_fetch_array($sql)):?> <?php $nome = $linha['nome']; ?> <?php $email = $linha['email']; ?> <?php endwhile;?> <?php echo 'nome-> '.$nome;?><br> <?php echo 'email-> '.$email;?> <br>------------------------------------------pagina2.php<br>  
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal a function abaixo exibe na tela o nome APRENDIZ.
      Gostaria de saber se é possível exibir na tela no formato texto o nome do link assim  -> pg2.php ou assim -> pg2.php  APRENDIZ 

      Nota: Vez por outra vou precisar alterar o nome da pg2.php por EX para qualquer outro nome de página . Lembrando que o link <a href="pg2.php">APRENDIZ</a> está em centenas de páginas  e quando  faço alteração da pg2.php para qualquer outro nome de pagina por EX, todos os links <a href="pg2.php">APRENDIZ</a> que estão em centenas de páginas também são alterados altomaticamente. A maioria dos editores de texto tem esta funcionalidade de atualizar todos os links de uma só vez. Portanto pessoal, exibir na tela o nome do link no formato texto tem que ser algo dinamico e não manual, por causa do nº de paginas que este link <a href="pg2.php">APRENDIZ</a> se encontra. Amigo, sua dica, sugestão, critica é bem vindo. Obrigado  
      Alguém se habilita? Obrigado
      <?php function exibir_nome_do_link(){?> <a href="pg2.php">APRENDIZ</a> <?php } echo exibir_nome_do_link(); ?>  
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal abaixo temos três exemplos que está funcionando normalmente, mas tem um problema. Gostaria que EX2 e EX3 tivesse a mesma referencia que EX1 sempre que uma nova referencia for gerada à partir do EX1.
      EX1 <?php function aleatorio($limit){ $str = "123456789"; $maximo = strlen ($str)-1; $caracteres = ''; for($i = 0; $i < $limit; $i++): $caracteres .= $str{mt_rand(0,$maximo)}; endfor; return $caracteres; } $gerar = aleatorio(4); echo $gerar; ?> <br /> EX2 <?php $nome = "joao;"?> <?php function teste1($nome) {?> <?php $gerar = aleatorio(4);?> <?php echo $gerar;?> <?php } // final função?> <?php print(teste1($nome));?> <br /> EX3 <?php $email = "teste@gmail.com;"?> <?php function teste2($nome) {?> <?php $gerar = aleatorio(4);?> <?php echo $gerar;?> <?php } // final função?> <?php print(teste2($email));?>  
       
    • By Biel.
      Olá pessoal. Direto ao ponto. Pessoal abaixo temos três function. (Ex1 quando dou echo retorna div email) (Ex2 quando dou echo retorna div nome) (Ex3 gostaria que retornasse div nome e div email em echo SEPARADO usando apenas uma function
      EX 1 <?php $email = "teste@gmail.com"; ?> <?php function aprendiz_01($email){?> <div style="border:1px solid #F05;">email</div> <?php }?> <?php echo aprendiz_01($email);?> <br />------------------------------------------------- 01<br /> EX 2 <?php $nome = "joao"; ?> <?php function aprendiz_02($nome){?> <div style="border:1px solid #F05;">joao</div> <?php }?> <?php echo aprendiz_02($nome);?> <br />------------------------------------------------- 02<br /> EX 3 <?php $nome = "joao"; $email = "teste@gmail.com"; ?> <?php function aprendiz_03($nome){?> <div style="border:1px solid #F05;">joao</div> <?php }?> <?php echo aprendiz_03($nome);?> <?php //echo 'email ->'.aprendiz_03($email);?> <br />------------------------------------------------- 03<br />  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.