douhang1913 2013-07-12 19:20
浏览 36
已采纳

从数组创建变量并使用它们来调用方法而不知道变量名称PHP

I have a factory pattern like this:

public function ViewFactory implements Factory {
    public function __construct() {

    }

    public static function Create($params) {
        //does not return variables, only extracts them
        $p = extract($params, EXTR_PREFIX_ALL, "var_");

        //return object of view and pass in all variables extracted from array
        return new View($p);
    }

    ***
    ***
}

interface Factory {
   public function Create($params);
   ***
   ***
}

Im trying to use extract but it does not return variables I just have to access them using keys from associative array prefixed by var_. Is it possible to somehow return all values of array as variables comma separated and pass it into function?

My View Class:

class View {
   public function __construct($path, $parameters, $site_title) {
         ***
   };
} 
  • 写回答

2条回答 默认 最新

  • douchun1859 2013-07-12 19:30
    关注

    I'm not quite sure if this is what you are asking for, but you can use ReflectionClass::newInstanceArgs to create an instance of a class and pass it arguments from an array :

    public static function Create($params) {
        $class = new ReflectionClass('View');
        return $class->newInstanceArgs($params);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 请问如何在openpcdet上对KITTI数据集的测试集进行结果评估?
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错