我正在扩展网址助手(MY_url_helper)。如何在我的帮助函数中访问base_url()?我实际上覆盖了base_url(),所以我需要调用原始的base_url。
修改1:
这不起作用:
$CI =& get_instance();
$CI->load->helper('url');
$base_url = $CI->base_url();
答案 0 :(得分:2)
不幸的是,在全局php命名空间中定义了内置辅助函数,一旦定义了一个名为base_url
的函数,你将无法定义另一个具有相同名称的函数,所以你不能从原始助手“somwehere”加载原始base_url
函数并使用它。
因此,CI的内置帮助文件在if块中定义函数:
if ( ! function_exists('FUNCTION_NAME'))
// ...
}
因此,即使您在被覆盖的版本中加载原始帮助文件,它也不会产生致命错误,但也没有做任何有意义的事情。
在具体案例中,base_url的实现基本上是:
return get_instance()->config->base_url($uri);
您可以将其提升为被覆盖的base_url
版本。