日期:2014-05-17  浏览次数:20593 次

thinkphp用import引入的文件,没有办法读取
我在一个函数内用import("Common.logAction",APP_PATH,'.php');引入logAction.php文件,这个文件是一个多维数组,结构如下:
$_LANG['log_action']['add'] = '添加';
$_LANG['log_action']['remove'] = '删除';
$_LANG['log_action']['edit'] = '编辑';
$_LANG['log_action']['import'] = '导入';
$_LANG['log_action']['sheng'] = '生成';
$_LANG['log_action']['print'] = '打印';
$_LANG['log_action']['general_ruku'] = '常规入库';
$_LANG['log_action']['sell_chuku'] = '销售出库';
$_LANG['log_action']['check'] = '审核';
$_LANG['log_action']['uncheck'] = '取消审核';
$_LANG['log_action']['batch_check'] = '批量审核';

但是我在函数中却怎么也读取不到引入那个文件的变量值。
function admin_log($sn = '', $action, $content)
{
//日志操作,动作
import("Common.logAction",APP_PATH,'.php');
echo $GLOBALS['_LANG']['log_action'][$action];exit;
   

}

麻烦各位给点建议。。。

------解决方案--------------------
浏览了一下 thinkphp 的代码
import 是函数,其中调用 require_cache 加载文件
而文件是在 require_cache 中加载的:require $filename;
因此除了类定义以外,其他的数据声明都成为了函数 require_cache 中的私有变量
除非你在被加载的文件声明其为全局变量


------解决方案--------------------
引用:
对的,就是配置文件来的,我刚刚在被引入的那个文件中定义global  $_LANG;就可以了。
不过我想问一下,如果全局变量定义太多会有影响吗?
全局变量定义太多会有影响吗?
没有,只是需要自己注意不要冲突了

配置文件应该用 TP 约定的方式来做,他会自动加载