【问题标题】:Sending an object as a parameter in PHP, without instantiating it在 PHP 中将对象作为参数发送,而不实例化它
【发布时间】:2012-07-17 18:15:30
【问题描述】:

如何在函数调用中将对象作为参数发送?我不想在传递对象时实例化它,所以myFunction( new myObject() ) 不起作用。

我希望myFunction 以后能够实例化该对象。我只是不确定如何以这种方式传递课程。

【问题讨论】:

    标签: php class object


    【解决方案1】:

    将类名作为字符串传递,并实例化它。

    https://stackoverflow.com/a/4578343/362536

    function ($className) {
        $object = new $className();
    }
    

    【讨论】:

    • 啊!我想了很多,但我认为可能有另一种不使用字符串的方法。它虽然有效。对我来说已经足够好了。谢谢。
    【解决方案2】:

    你可以传递一个字符串然后做:

    myFunction($class) {
        $object = new $class();
    }
    

    但更好的 OOP 方法是传递一个工厂对象并让工厂创建该对象:

    class MyFactory {
        public function create() { 
            return new myObject; 
        }
    }
    
    myFunction(MyFactory $factory) {
        $object = $factory->create();
    }
    

    【讨论】:

      猜你喜欢
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多