从变量名创建对象

时间:2011-04-01 09:30:02

标签: php string class

如何从变量中单行创建我的类对象:

$strClassName = 'CMSUsers';
$strModelName = $strClassName.'Model';
$strModelObj = new $strModelName();

上面的代码成功创建了我的CMSUsersModel类对象,但是当我尝试:

$strClassName = 'CMSUsers';
$strModelObj = new $strClassName.'Model'();

它弹出错误....说:

Parse error: syntax error, unexpected '(' in 

2 个答案:

答案 0 :(得分:12)

创建对象时不能使用字符串连接。

如果您使用

class aa{}

$str = 'a';
$a = new $str.'a';   // Fatal error : class a not found



class aa{}

$str = 'a';
$a = new $str.$str; // Fatal error : class a not found

所以你应该使用

$strModelName = $strClassName.'Model';
$strModelObj = new $strModelName();

答案 1 :(得分:1)

我不确定,因为我没有及时更新类和PHP,但我认为$strModelName是类定义,因此我认为你必须使用两行或写下这样的东西:

$strModelName = 'CMSUsers'.'Model'; $strModelObj = new $strModelName();