3

我正在扩展 URL 助手(MY_url_helper)。如何在我的辅助函数中访问 base_url()?我实际上覆盖了base_url(),所以我需要调用原始的base_url。

编辑1:

这不起作用:

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

1 回答 1

2

不幸的是,内置帮助函数是在全局 php 命名空间中定义的,一旦定义了一个名称的函数,base_url您将无法定义另一个具有相同名称的函数,因此您无法base_url从原始助手加载原始函数“其他地方”并使用它。

出于这个原因,CI 的内置帮助文件在 if 块中定义函数,如下所示:

if ( ! function_exists('FUNCTION_NAME'))
// ...
}

因此,即使您在覆盖的版本中加载原始帮助文件,它也不会产生致命错误,但也不会做任何有意义的事情。

在您的具体情况下,base_url 的实现基本上是:

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

您可以将其提升到覆盖的base_url.

于 2012-09-24T14:38:01.787 回答