Come usare argomenti di default in PHP
-
26-09-2019 - |
Domanda
voglio definire un doSomething(arg1, arg2)
funzione con valori di default per arg1 = val e arg2 = val
Quando scrivo
function doSomething($arg1="value1", $arg2="value2"){
// do something
}
E 'possibile ora chiamare doSomething con arg1 di default e arg2 = "new_value2"
Soluzione
No, purtroppo, questo non è possibile. Se si definisce $arg2
, è necessario definire $arg1
pure.
Altri suggerimenti
A volte, se ho un sacco di parametri con valori predefiniti, userò una matrice per contenere gli argomenti e si fondono con le impostazioni predefinite.
public function doSomething($requiredArg, $optional = array())
{
$defaults = array(
'arg1' => 'default',
'arg2' -> 'default'
);
$options = array_merge($defaults, $optional);
}
In realtà ha un senso solo se si dispone di un sacco di argomenti, però.
function doSomething( $arg1, $arg2 ) {
if( $arg1 === NULL ) $arg1 = "value1";
if( $arg2 === NULL ) $arg2 = "value2";
...
}
E per chiamata:
doSomething();
doSomething(NULL, "notDefault");
Ti arg1 mai assegnare ma non arg2? Se poi non mi piacerebbe passare l'ordine.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow