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