php- PHP使用数组调用类中的方法,出现了错误
/**
- 启用session/session_start();/*
- 包含初始化文件/include_once '../../../sys/config/db-cred.inc.php';/*
- 为配置信息定义常量/foreach ( $C as $name => $val ) {define($name, $val);}/*
-
以表单action为键生成一个关联数组
*/
$actions = array(
'event_edit' => array(
'object' => 'Calendar',
'method' => 'processForm',
'header' => 'Location:../../'
),'user_login' => array(
'object' => 'Admin',
'method' => 'processLoginForm',
'header' => 'Location:../../'
)
);
/** -
保证session中的防跨站标记与提交过来的标记一致及请求action合法
*/
if ( $_POST['token']==$_SESSION['token'] &&
isset($actions[$_POST['action']]) ) {
$use_array = $actions[$_POST['action']];
$obj = new $use_array'object';if ( true == $msg=$obj->$use_array['method']() ) { header($use_array['header']); exit;} else { die( $msg );}
} else {
//如果token/action非法,重定向到主页
header("Location:../../");
exit;
}
function __autoload($class) {
$filename = "../../../sys/class/class.".$class.".inc.php";if ( file_exists($filename) ) { include_once $filename;}
}
主要是这个的问题:$obj->$use_array'method'
一到这个步骤就会出现Function name must be a string in E:\qampp\htdocs\Source Files\public\assets\inc\process.inc.php:40 Stack trace: #0 {main} thrown in E:\qampp\htdocs\Source Files\public\assets\inc\process.inc.php on line 40错误。
如果用$obj直接调用该类中的processForm()或者processLoginForm()方法的话,都可以。
请求大神帮忙看看。
回复内容:
http://blog.sina.com.cn/s/blog_8d7518cb0100zk1t.html