开发者社区 问答 正文

求教各位大神PHP工程模式如何传入参数?

我有个需求
比如下面

function Factory($classname) { return new $classname(); }
$tiger = Factory("Tiger");

但如果我Tiger类构造方法有参数的话,如何通过工厂来传参呢?
要适应所有类: 不用构造方法有不同的参数个数, 直接在构造方法后面加上参数貌似行不通, 并且我也不希望通过传array的办法来解决。

展开
收起
落地花开啦 2016-06-14 18:17:15 2121 分享 版权
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    反射一下

    class test{
        function __construct($config = ''){
            if(!empty($config)){
                var_dump($config);
            }else{
                echo 'no params';
            }
        }
    }
    function Factory($classname, $params='') {
         if(!empty($params) ){
            $reflect  = new ReflectionClass($classname);
            return $reflect->newInstanceArgs($params);
         }else{
            return new $classname();
         }
    
    }
    $config_test = array('a','b','c');
    Factory('test');
    Factory('test', $config_test);
    2019-07-17 19:38:29
    赞同 展开评论
问答分类:
PHP
问答地址: