आम तौर पर आप नहीं सोच सकते हैं लेकिन मुझे लगता है कि एक PHP फ़ंक्शन में नामित तर्कों को पारित करने के कई तरीके हैं। व्यक्तिगत तौर पर मैं सरणियों का उपयोग कर परिभाषा पर रिले और बस क्या मैं पास करनी होगी फोन:
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();
लाइव यहाँ उदाहरण: http://sandbox.onlinephpfunctions.com/code/d7f27c6e504737482d396cbd6cdf1cc118e8c1ff
तो मेरे पास है 10 तर्क पारित करने के लिए, और उनमें से 3 डेटा मैं कर रहे हैं वास्तव में की तरह
return myfunction(false,false,10,false,false,"date",false,false,false,"desc");
दृष्टिकोण मैं रहा हूं साथ
समारोह कुछ में पारित करने के लिए, की जरूरत है नहीं भी स्मार्ट, आप सेटअप एक सरणी में 10 तर्क के किसी भी कर सकते हैं:
$arr['count']=10;
$arr['type']="date";
$arr['order']="desc";
return myfunction($arr);
मेरे पास इस ब्लॉग को अधिक जानकारी में इस प्रक्रिया को समझाते हुए एक पोस्ट है।
http://www.tbogard.com/2013/03/07/passing-named-arguments-to-a-function-in-php
, '$ ग =" बार "' 'bar' एक' $ c' करने के लिए * फोन करने वाले गुंजाइश * (नहीं बुलाया समारोह में 'foo') बताए जाता है और फिर असाइन किए गए मान को 'foo()' को दूसरे पैरामीटर के रूप में पास करना, जिसे स्थानीय '$ b' चर के रूप में प्राप्त किया जाएगा। – Petruza