CodeIgniter-如何在助手中访问base_url()?

CodeIgniter-如何在助手中访问base_url()?,codeigniter,Codeigniter,我正在扩展URL帮助程序(我的URL帮助程序)。如何在助手函数中访问base_url()?实际上我正在重写base_url(),因此我需要调用原始的base_url 编辑1: 这不起作用: $CI =& get_instance(); $CI->load->helper('url'); $base_url = $CI->base_url(); 不幸的是,内置的helper函数是在全局php命名空间中定义的,一旦定义了一个名为base\u url的函数,就无法定义另一个

我正在扩展URL帮助程序(我的URL帮助程序)。如何在助手函数中访问base_url()?实际上我正在重写base_url(),因此我需要调用原始的base_url

编辑1:

这不起作用:

$CI =& get_instance();
$CI->load->helper('url');
$base_url = $CI->base_url();

不幸的是,内置的helper函数是在全局php命名空间中定义的,一旦定义了一个名为
base\u url
的函数,就无法定义另一个同名函数,因此无法从原始helper“somwehere else”加载原始
base\u url
函数并使用它

因此,CI的内置帮助文件在if块中定义函数,如下所示:

if ( ! function_exists('FUNCTION_NAME'))
// ...
}
因此,即使在覆盖版本中加载原始帮助文件,也不会产生致命错误,也不会执行任何有意义的操作

在您的具体案例中,基本url的实现基本上是:

return get_instance()->config->base_url($uri);

您可以将其提升到覆盖版本的
base\u url

中,只需定义一个方法base\u url即可overridden@Gautam3164-我想使用base_url()。@raheelshan-我的问题不是覆盖。它是关于从试图覆盖原始函数的函数访问base_url()函数的。在扩展库中创建ci$this->ci=$get_instance()的实例;然后$this->ci->load->helper('url');完成了<代码>$this在帮助程序中不起作用。但我知道如何创建CI实例并加载助手(尽管我不需要这样做,因为它已经自动加载到我的应用程序中)。如何调用base_url()?