0

我需要知道如何将数组作为单独的变量传递给函数,例如,

function myfunction($var, $othervar) {
}

$myarray = array('key'=>'val', 'data'=>'pair');

这是我遇到问题的地方,以下似乎不起作用:

$return = myfunction(extract($myarray));

如果我理解正确,它应该基本上与

$return = myfunction($key, $data);

其中 $key='val' 和 $data='pair'

谁能给我解释一下。

4

3 回答 3

0

如果我理解你的问题,那么试试这个

$return = myfunction($myarray["key"],$myarray["data"]);

在这里,我们只是将关联数组作为参数传递。

于 2013-07-31T03:58:26.320 回答
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];
    }
于 2013-07-31T04:06:28.107 回答
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']);

谢谢大家

于 2013-07-31T04:30:25.130 回答