Normalde ama orada bir PHP işlevi adlandırılmış argümanların yollar bir sürü düşünemiyorum. Şahsen ben dizileri kullanarak tanımı röle ve sadece ben geçmesi gerekir ne diyoruz:
class Test{
public $a = false;
private $b = false;
public $c = false;
public $d = false;
public $e = false;
public function _factory(){
$args = func_get_args();
$args = $args[0];
$this->a = array_key_exists("a",$args) ? $args["a"] : 0;
$this->b = array_key_exists("b",$args) ? $args["b"] : 0;
$this->c = array_key_exists("c",$args) ? $args["c"] : 0;
$this->d = array_key_exists("d",$args) ? $args["d"] : 0;
$this->e = array_key_exists("e",$args) ? $args["e"] : 0;
}
public function show(){
var_dump($this);
}
}
$test = new Test();
$args["c"]=999;
$test->_factory($args);
$test->show();
live example here:
http://sandbox.onlinephpfunctions.com/code/d7f27c6e504737482d396cbd6cdf1cc118e8c1ff
Ben 10 argümanları geçmek zorunda, ve 3 tanesi gerçekten ihtiyacım veri iseniz gibi işlev şeye geçmesine BİLE SMART DEĞİLDİR
return myfunction(false,false,10,false,false,"date",false,false,false,"desc");
Yaklaşımı ile ben kurulum bir diziye 10 argümanların herhangi can veriyorum,:
$arr['count']=10;
$arr['type']="date";
$arr['order']="desc";
return myfunction($arr);
Ben daha detaylı olarak bu süreci açıklayan blogumda bir yazı var.
http://www.tbogard.com/2013/03/07/passing-named-arguments-to-a-function-in-php