В настоящее время у меня есть метод/функция класса в этой форме:
function set_option(&$content,$opt ,$key, $val){
//...Some checking to ensure the necessary keys exist before the assignment goes here.
$content['options'][$key][$opt] = $val;
}
Теперь я немного изменяю функцию, чтобы сделать первый аргумент необязательным, позволяя мне передать только 3 параметра. В этом случае вместо того, что я опускаю, используется свойство класса content
.
Первое, что приходит в голову, это использовать func_num_args() и func_get_args() в сочетании с этим, например:
function set_option(){
$args = func_get_args();
if(func_num_args() == 3){
$this->set_option($this->content,$args[0],$args[1],$args[2]);
}else{
//...Some checking to ensure the necessary keys exist before the assignment goes here.
$args[0]['options'][$args[1]][$args[2]] = $args[3];
}
}
Как я могу указать, что я передаю первый аргумент для этого в качестве ссылки? (Я использую PHP5, поэтому указывая, что переменная передается по ссылке на вызов функции, на самом деле не является одним из моих лучших вариантов.)
(Я знаю, что могу просто изменить список параметров, чтобы последний параметр был необязательным, делая его как function set_option($opt,$key,$val,&$cont = false)
, но мне любопытно, может ли передача по ссылке в сочетании с определениями функций, как указано выше. я бы предпочел использовать его.)