php传递数组作为单独的变量

时间:2013-07-31 03:47:21

标签: php object

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

function myfunction($var, $othervar) {
}

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

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

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

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

基本相同
$return = myfunction($key, $data);

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

任何人都可以向我解释一下。

3 个答案:

答案 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']);

感谢所有