我希望做一些类似CodeIgniter的load
对象工作的方法。您可以使用:
$this->load->model('some_model', 'custom_name')
现在可以通过some_model
访问模型$this->custom_name
。这会使用__set()
和__get()
还是完全不同?
答案 0 :(得分:3)
不,codeigniter不使用getter / setter。假设$this
在上下文中可用:
$dynamic_class_name = 'some_model';
$dynamic_property_name = 'custom_name';
$this->$dynamic_property_name = new $dynamic_class_name;
你已经完成了,你也可以在实例化时传递动态构造函数参数。
答案 1 :(得分:0)
您也可以使用反射类。
http://php.net/manual/en/class.reflectionclass.php
<?php
$reflection = new ReflectionClass($class_name);
$this->$class_name = $reflection->newInstanceArgs($params);