使用特征绑定动态创建类

时间:2012-05-05 12:45:16

标签: php class eval traits

我想在我的项目中使用特征,并且为了多重继承,我想使用特征。

所以我创建了一些使用的特征,例如:tItem_Epic,tItem_Weapon,Item_Driver

当我为Sword创建新类时,我想我可以使用eval来创建类:

<?php
function new_item_class($type)
{
    eval('class Item_'.ucfirst($type).' extends Item_Driver { use tItem_Epic, tItem_Weapon; }');
}
?>

这是一个例子。还有一些参数可以改变评估过程(例如:项目质量等)。

这会减缓进度吗?或者我应该为每种项目类型创建一个文件,并在需要时调用它们?哪一个会更快?

1 个答案:

答案 0 :(得分:2)

您可以在磁盘上生成文件,这可能是IDE的一个好处,因为它们也可以解析这些文件,而且它不那么神奇。

对于PHP,eval(您的代码例外)和include(磁盘上的文件示例)之间没有太大区别。所以,请你做什么让我高兴。

我个人更喜欢文件,因为它比那些魔术类更直接。而且我不会寻找“表现”理由来决定。你谈到的那种表现是短视的,因为你谈论的是哪种表现仍然未定义,特别是因为你还没有遇到瓶颈。