Php varsayılan argümanlar kullanmak nasıl

4 Cevap php

Ben bir işlev doSomething(arg1, arg2) arg1 = val ve arg2 = val varsayılan değerler ile tanımlamak istiyorum

Ben yazarken

function doSomething($arg1="value1", $arg2="value2"){
 // do something
}

Şimdi varsayılan arg1 ve arg2 = "new_value2" ile doSomething aramak mümkün mü

4 Cevap

Hayır, ne yazık ki, bu mümkün değildir. Eğer $arg2 tanımlarsanız, siz de $arg1 tanımlamak gerekir.

Ben varsayılan ile parametrelerin bir sürü varsa, bazen, ben argümanları içeren ve varsayılan ile birleştirmek için bir dizi kullanmak gerekir.

public function doSomething($requiredArg, $optional = array())
{
   $defaults = array(
      'arg1' => 'default',
      'arg2' -> 'default'
   );

   $options = array_merge($defaults, $optional);
}

Eğer olsa bir çok fikri varsa gerçekten sadece mantıklı.

function doSomething( $arg1, $arg2 ) {
  if( $arg1 === NULL ) $arg1 = "value1";
  if( $arg2 === NULL ) $arg2 = "value2";
  ...
}

Ve aramak için:

doSomething();
doSomething(NULL, "notDefault");

Hiç arg1 atamak ama Arg2 musunuz? Eğer değilse o zaman ben sırasını değiştirmek istiyorum.