是否有可能在PHP实例从一个类的名称的对象,如果类名称存储在一个字符串?
Answer 1:
是的,绝对。
$className = 'MyClass';
$object = new $className;
Answer 2:
是的,它是 :
<?php
$type = 'cc';
$obj = new $type; // outputs "hi!"
class cc {
function __construct() {
echo 'hi!';
}
}
?>
Answer 3:
静太:
$class = 'foo';
return $class::getId();
Answer 4:
您可以通过存储你的类名(一个或多个)在存储/方法,如数据库做一些动态调用。 假设类是有弹性的错误。
sample table my_table
classNameCol | methodNameCol | dynamic_sql
class1 | method1 | 'select * tablex where .... '
class1 | method2 | 'select * complex_query where .... '
class2 | method1 | empty use default implementation
等等。然后,在使用数据库的类和方法名返回的字符串代码。 你甚至可以存储SQL查询你的课程,如果达到你的想象力的自动化水平。
$myRecordSet = $wpdb->get_results('select * from my my_table')
if ($myRecordSet) {
foreach ($myRecordSet as $currentRecord) {
$obj = new $currentRecord->classNameCol;
$obj->sql_txt = $currentRecord->dynamic_sql;
$obj->{currentRecord->methodNameCol}();
}
}
我用这个方法来创建REST Web服务。
文章来源: Can PHP instantiate an object from the name of the class as a string?