Como usar argumentos padrão no PHP
-
26-09-2019 - |
Pergunta
Eu quero definir uma função doSomething(arg1, arg2)
com valores padrão para arg1 = val e arg2 = val
Quando eu escrevo
function doSomething($arg1="value1", $arg2="value2"){
// do something
}
É possível agora ligar para o Dosomething com o padrão arg1 e arg2 = "new_value2"
Solução
Não, infelizmente, isso não é possível. Se você definir $arg2
, você precisará definir $arg1
também.
Outras dicas
Às vezes, se eu tiver muitos parâmetros com padrões, usarei uma matriz para conter os argumentos e mesclá -lo com os padrões.
public function doSomething($requiredArg, $optional = array())
{
$defaults = array(
'arg1' => 'default',
'arg2' -> 'default'
);
$options = array_merge($defaults, $optional);
}
Realmente só faz sentido se você tiver muitos argumentos.
function doSomething( $arg1, $arg2 ) {
if( $arg1 === NULL ) $arg1 = "value1";
if( $arg2 === NULL ) $arg2 = "value2";
...
}
E para ligar:
doSomething();
doSomething(NULL, "notDefault");
Você já atribuiu Arg1, mas não Arg2? Caso contrário, eu alteraria o pedido.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow