是否有官方/推荐的方法在运行时在 PHP 中声明/定义/注册新类?
我基本上想做的是根据存储在数据库中的定义生成类,包括属性和方法。
我找到了一些文章/主题,但它们实际上都是旧的,所以我想知道是否存在一些优雅/有效的方法来做到这一点。令我惊讶的是,关于这方面的信息并没有我想象的那么多。
有那么严重吗?据我所知,PHP 总是将类定义保存在内存中,因此我看不出在运行时声明类有任何问题,因为它基本上是相同的结果,但也许我错了。
我认为现在不相关,但我在这个项目中使用 Laravel。
谢谢!
最佳答案
是的。
<?php
$foobar = "foobar";
eval("class $foobar {" .
"function __construct(\$i) {" .
"echo \"Dark magic ritual complete. \$i virgins sacrificed to satan.\"; " .
"}" .
" }");
$evil = new $foobar(5);
echo "<br /><br />";
var_dump($evil);
产生:
Dark magic ritual complete. 5 virgins sacrificed to satan.
object(foobar)#1 (0) { }
我不打算向您讲授语义,但这是一个非常糟糕的主意,您应该重新考虑使用类来促进数据库记录的需要。类本身并不特殊,但是使用类来处理数据库条目是完全可以接受的。
关于PHP:如何在运行时创建和注册类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37011661/