Vol*_*ike 1 php oop static eval class
他们说eval()是邪恶的.我想避免使用适当的PHP5功能使用eval()行.给定静态类方法中的类名,如何使其返回真实对象?
class Model {
public static function loadModel($sModelPath) {
if (!(strpos(' ' . $sModelPath, '/')>0)) {
$sModelPath .= '/' . $sModelPath;
}
$sModelName = str_replace('/','_',$sModelPath);
// P is a global var for physical path of the website
require_once(P . '_models/' . $sModelPath . '.php');
eval("\$oObject = new $sModelName" . '();');
return $oObject;
}
}
Run Code Online (Sandbox Code Playgroud)
Ken*_*iah 12
return new $sModelName();
您也可以通过动态名称调用函数:
$func = "foobar";
$func("baz"); //foobar("baz")
Run Code Online (Sandbox Code Playgroud)