我正在尝试将CI引入遗留应用程序,但是想要使用CI外部已经存在的一些全局变量。我一直在将它们加载到/CI/config/config.php并在视图中使用它来获取它们:
$这 - > config->项( 'MYVAR');
工作正常。但是,如果我在名为sidebar.php的模型中包含我的侧边栏,它想要访问存储在globals.php中的全局变量,那么它们就会变为未定义。请注意,sidebar.php使用include语句从globals.php访问全局变量。此外,全局变量在globals.php中定义如下: $ myvar =“bla”;
globals.php和sidebar.php不在CI之内。这两个文件不需要执行函数。
有没有人知道允许CI及其包含的文件来访问其外的全局变量的技巧?我不想过多地更改遗留代码。
答案 0 :(得分:1)
Codeigniter提供了一个有用的辅助函数来解决这些情况。 get_instance()函数将返回单例对象,以便您可以访问它的许多精彩功能。以下是如何执行此操作的示例。
$ci =& get_instance();
$ci->config->item('varname');
这是documentation。您可以在标题使用库中的CodeIgniter资源
下找到参考文献答案 1 :(得分:0)
事实证明我在遗留代码无法访问它的地方找到了globals.php文件的include_once语句。遗留代码已经有了一个include_once语句但它被忽略了b / c它已经包含在其他地方了。
如果我打开testfile.php:
,我认为它在CI中的行为类似于CI<强> testfile.php:强>
include_once("globals.php");
function testf(){
include("sidebar.php");
}
testf();
<强>的sidebar.php 强>
include_once("globals.php");
echo $myvar; //fails