Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Macêdo

[Resolvido] Criando Função no PHP

Recommended Posts

Bateu uma dúvida interessante que eu fiquei pensando agora e não achei uma solução. Suponha o código abaixo:

function teste($quantidade){
  for($i=1; $i<=$quantidade; $i++){
    echo $i."<br>";
  }
}

Se eu não passar um valor como parâmetro para a $quantidade, ele retorna um erro avisando que está faltando.

 

Agora eu pergunto, teria como definir uma função que eu precisasse assim de uma quantidade e se eu não passar esse valor, ele assuma um valor lá dentro, como algo nessa lógica aqui? (sem exibir o erro, não no sentido de escondê-lo, mas sim de resolvê-lo).

function teste($quantidade){
  if(!isset($quantidade)){
    $quantidade = 5;
  }

  for($i=1; $i<=$quantidade; $i++){
    echo $i."<br>";
  }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, já descobri a resposta e a forma de resolver isso.

 

Segue abaixo o código de exemplo:

<?php
function teste(){
  if(func_num_args()>0){
    $quantidade = func_get_arg(0);
  }else{
	  $quantidade = 5;
  }

  for($i=1; $i<=$quantidade; $i++){
    echo $i."<br>";
  }
}

teste(27);
teste();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não exatamente. A minha dúvida era criar uma função e que ela não fosse obrigatória passar um parâmetro. Pois se você cria uma função e bota que vai receber um parâmetro, isso se torna obrigatório para que não haja erro.

 

Mas neste caso, basta você criar a função sem parâmetro e dentro dela pegar os parâmetros que forem passados ocasionalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dois modos funcionam..

 

acho mais simples especificar um valor default

 

nesses casos, geralmente atribuo valor booleano "false"

 

 

function teste($quantidade = false) {
  if( $quantidade )
  {
      for($i=1; $i<=$quantidade; $i++){
        echo $i."<br>";
      }
  }else{
      // nao foi enviado o parâmetro
  }
}


echo 'valor: ';
teste();
echo '<hr>valor: ';
teste(10);

 

 

func_get_arg() utiliza-se geralmente nos casos onde a quantidade de parâmetros é variável

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.