我希望做類似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);