我想要做的是:
$clsName = substr(md5(rand()),0,10); //generate a random name
$cls = new $clsName(); //create a new instance
function __autoload($class_name)
{
//define that instance dynamically
}
很明显,我实际上并没有这样做,但基本上我有一个类的未知名称,并且根据名称,我想生成具有特定属性的类等。
我尝试使用eval(),但它使我头疼私有和$this->引用...
//编辑
好的,显然我的简短而简单的“这是我想做的事情”引起了那些可能能提供答案的人的巨大纷争和困惑。为了得到一个真正的答案,我将更详细地解释。
我有一个验证框架,在我维护的站点上使用代码提示。每个函数都有两个定义。
function DoSomething($param, $param2){
//code
}
function DoSomething_Validate(vInteger $param, vFloat $param2){
//return what to do if validation fails
}
我想在我的数据库中添加主键验证器。我不想为每个表(203个)创建一个单独的类。所以我的计划是做一些像这样的事情
function DoSomething_Validate(vPrimaryKey_Products $id){ }
__autoload会生成vPrimaryKey的一个子类,并将table参数设置为Products。
现在满意了吗?