0

我创建了 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();

它在我的本地主机(wamp 服务器)上运行良好。但是,当我将它上传到我的主机 (php 5.2) 时,它在我调用静态函数 $class::find_by_id($id) 的地方给出了这个错误:解析错误:语法错误,意外的 T_PAAMAYIM_NEKUDOTAYIM。我怎么解决这个问题?

4

1 回答 1

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,但您可能无法控制它。

于 2013-03-09T17:30:56.610 回答