我正在将所有的http请求重定向到index.php,router.php和其他配置文件正在被index.php调用,我有一个路由器,如果文件存在,它将寻找处理程序,但我不知道我是如何访问我的控制器中的处理程序变量。
这是我的index.php,将包含所有配置文件,如数据库和网站设置
的index.php
require_once ('include/config.inc.php');
require_once ('include/mysql.inc.php');
require_once ('include/shared_function.inc.php');
require_once ('include/router.inc.php');
这是我的路由器,如果存在,将检查处理程序。
router.php
front_controller(){
if(file_exists('handlers/login-handler.php')){
include_once('handlers/login-handler.php');
}
include_once( 'login.php' );
}
front_controller();
这是我处理请求的文件,通常我会保留一系列错误以表格形式显示
处理程序/登录-handler.php
//initialise variable to keep error
$errors=array();
if(request==post){
...
//validate post data
...
}
在调用处理程序之后,这是我的控制器,它将显示表单或结果。
的login.php
//here comes the error , undefined variable
print_r($errors);
请建议我克服这个问题的好方法......
答案 0 :(得分:2)
如何使用公共“add_error”和“get_errors”方法创建一个抽象的Error类?只要将类导入到您的代码中,您就可以自由访问它。它可能会像:
abstract class Error_handler
{
private static $ERRORS=array();
public static function add_error($error) {self::$ERRORS[]=$error;}
public static function &get_errors() {return self::$ERRORS;}
}
错误将包含在静态$ ERRORS数组中,并且永远不会与代码中的任何其他名称冲突。
答案 1 :(得分:1)
在打印变量之前使用以下代码。
global $errors;