常量不能在被调用的类中访问

时间:2014-01-13 15:20:04

标签: php routing constants

我目前正在处理一些关于我的常数的注意事项,但是没有设置。我的路由课,我这样做:

define('_CALLED_MODULE',$v->match_array['module']);
define('_CALLED_CONTROLLER',$v->match_array['controller']);
define('_CALLED_METHOD',$v->match_array['method']);

# Load the routed class.
if( class_exists($controllerName, true) && method_exists($controllerName, $methodName) )
{
    $this->route_params = $v->match_array['params'];

    $dispatch = new $controllerName();
    return call_user_func_array(array($dispatch, $methodName), $v->match_array['params']);
} else {
    $this->Error = new \Framework\Error\Error;
    return $this->Error->bootstrap('404');
}

我的问题是,在课堂上,我打电话,我无法使用我定义的常量。我一直认为常数是在全球范围内 - 这是错误的吗?

这意味着当我定义它们时,我可以在任何被调用的类/函数中使用它们,但这似乎不对,因为我得到以下注意事项:

Notice: Use of undefined constant _CALLED_MODULE - assumed '_CALLED_MODULE' 

我使用常数错了吗?我应该如何传递全局数据?

逻辑说明

  • 我的路由器有一系列连接到URL的路由。
  • 路由器遍历此阵列
  • 找到匹配项后,路由器会定义模块,控制器和方法
  • 检查具有命名空间和名称的类是否存在
  • 类文件包含自动加载器功能(这可能是问题吗?)

0 个答案:

没有答案