我创建了delete.php页面,它将接受类名和ID,如下所示:
if(isset($_GET['id']) && is_numeric(trim($_GET['id'])) ) {
$id = $_GET['id'];
}
else{
redirect_to($back);
}
if(isset($_GET['cls']) && class_exists($_GET['cls']) ) {
$class = $_GET['cls'];
}
else {
redirect_to($back);
}
然后我将创建一个对象并调用其删除方法:
$object = $class::find_by_id($id);
$object->delete();
它在我的localhost(wamp服务器)上工作正常。 但是,当我将它上传到我的主机(PHP 5.2)时,它在线上给我这个错误,我调用了静态函数$ class :: find_by_id($ id): 解析错误:语法错误,意外T_PAAMAYIM_NEKUDOTAYIM。我该如何解决这个问题?
答案 0 :(得分:2)
您可能正在处理两种不同版本的PHP。 WAMP附带5.3允许$class::find_by_id($id)
,另一方面PHP 5.2不喜欢它。
请改为尝试:
$object = call_user_func(array($class,'find_by_id'),$id);
如果这不起作用(我不明白为什么它不会),你总是可以使用eval(即使eval很糟糕):
eval("\$o=$f::find_by_id(\$id);");
当然,最好的解决方案是在您的服务器上升级到PHP> = 5.3,但您可能无法控制它。