我希望做类似CodeIgniter的load
对象工作方式的东西。您可以实例化一个类,并在这个例子中,一个模型,通过使用:创建类的属性动态/编程
$this->load->model('some_model', 'custom_name')
模型some_model
现在通过$this->custom_name
访问。这是否使用__set()
和__get()
还是完全不同的东西?
我希望做类似CodeIgniter的load
对象工作方式的东西。您可以实例化一个类,并在这个例子中,一个模型,通过使用:创建类的属性动态/编程
$this->load->model('some_model', 'custom_name')
模型some_model
现在通过$this->custom_name
访问。这是否使用__set()
和__get()
还是完全不同的东西?
不,笨不使用getter/setter方法。假设$this
是在上下文中可用:
$dynamic_class_name = 'some_model';
$dynamic_property_name = 'custom_name';
$this->$dynamic_property_name = new $dynamic_class_name;
你做,你也可以当实例传递动态构造PARAMS。
您也可以使用反射类。
http://php.net/manual/en/class.reflectionclass.php
<?php
$reflection = new ReflectionClass($class_name);
$this->$class_name = $reflection->newInstanceArgs($params);