Use start and end parameters without using the middle ones. PHP

0

Good evening!

Imagine that I have a function with some parameters set to null:

public function Usuario($Nome = null, $Idade = null, $Sexo = null, $Email = null) {

    $this->Nome = (string) $Nome;
    $this->Idade = (int) $Idade;
    $this->Sexo = (string) $Sexo;
    $this->Email = (string) $Email;

}

Let's assume that I only want to use Name and Email, Sex and Age do not. How do I do this when I call the method?

    
asked by anonymous 10.10.2017 / 01:54

2 answers

2

According to documentation of PHP:

  

"Note that using default arguments, any pattern should come after non-default arguments: otherwise, things will not work as expected."

That is, the only way to do what you want to do is pass the already null parameters:

Usuario("nome", null, null, "email");
    
10.10.2017 / 02:05
0

You can pass the parameters through array, this facilitates, especially if the amount of parameters is large.

public function Usuario($dados = array()) {

  $this->Nome = isset($dados["nome"]) ? $dados["nome"] : null;
  $this->Idade = isset($dados["idade"]) ? $dados["idade"] : null;
  $this->Sexo = isset($dados["sexo"]) ? $dados["sexo"] : null;
  $this->Email = isset($dados["email"]) ? $dados["email"] : null;

}

// montando array
$dados = array();
$dados["nome"] = "João";
$dados["idade"] = "20";

// chamando função
Usuario($dados);
    
10.10.2017 / 02:43