我需要知道如何将数组作为单独的变量传递给函数,例如,
function myfunction($var, $othervar) {
}
$myarray = array('key'=>'val', 'data'=>'pair');
这是我遇到问题的地方,以下似乎不起作用:
$return = myfunction(extract($myarray));
如果我理解正确,它应该与
基本相同$return = myfunction($key, $data);
其中$ key ='val'和$ data ='pair'
任何人都可以向我解释一下。
答案 0 :(得分:0)
如果我理解你的问题,那就试试吧
$return = myfunction($myarray["key"],$myarray["data"]);
这里我们只是将关联数组作为参数传递。
答案 1 :(得分:0)
public function get($key=null, $function='', array $vars=array()) {
if ($key==null || !array_key_exists($key, $this->_obj)) {
return null;
}
var_dump($vars);
if (!empty($function)) {
return $this->_obj[$key]->$function(array_walk($vars));
// return call_user_func_array(array(get_class($this->_obj[$key]), $function), $vars);
// return $this->_obj[$key]->$function(extract($vars));
}
return $this->_obj[$key];
}
答案 2 :(得分:0)
public function get($key=null, $function='', array $vars=array()) {
if ($key==null || !array_key_exists($key, $this->_obj)) {
return null;
}
if (!empty($function)) {
return call_user_func_array(array($this->_obj[$key], $function), $vars);
}
return $this->_obj[$key];
}
$registry = Registry_Object::Singleton();
//...later on
$registry = $GLOBALS['registry'];
$registry->set('Content', new Content($_SERVER['REQUEST_URI']));
$id = $registry->get('Content', 'GetIdFunc');
$registry->set('DB', 'Database');
$query = $registry->get('DB', 'Read', array("SELECT TITLE, CONTENT FROM APP_CONTENT WHERE ID=$id"));
print '<h1>'.$query[0]['TITLE'].'</h1>';
print Template_Helper::TPL_Paragraphs($query[0]['CONTENT']);
感谢所有