and*_*gan 19 php oop wordpress
我有称为基本类field
和扩展此类如类text
,select
,radio
,checkbox
,date
,time
,number
,等.
扩展field
类的类是在递归使用的目录中动态调用的include_once()
.我这样做是为了让我(和其他人)只需添加一个文件即可轻松添加新的字段类型
我想知道的是:有没有办法从其中一个动态包含的变量名扩展类中证实一个新对象?
例如一个名字的类checkbox
:
$field_type = 'checkbox';
$field = new {$field_type}();
Run Code Online (Sandbox Code Playgroud)
也许这会起作用?但它没有?
$field_type = 'checkbox';
$field = new $$field_type();
Run Code Online (Sandbox Code Playgroud)
sg3*_*g3s 37
这应该用于实例化具有字符串变量值的类:
$type = 'Checkbox';
$field = new $type();
echo get_class($field); // Output: Checkbox
Run Code Online (Sandbox Code Playgroud)
所以你的代码应该可以工作我想象.你的问题又是什么?
如果您想创建一个包含所有扩展类的类,那么这是不可能的.这不是PHP中的类如何工作.
Sam*_*nne 14
如果您使用的是命名空间,即使您在命名空间内,也需要添加它.
namespace Foo;
$my_var = '\Foo\Bar';
new $my_var;
Run Code Online (Sandbox Code Playgroud)
否则它将无法上课.