开发者社区> 问答> 正文

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

我有个需求
比如下面

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

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

展开
收起
落地花开啦 2016-06-14 18:17:15 2034 0
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
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载