$Auth_Setup=array(
'UserTable'=>'user', //用户数据表
'UserField'=>'UserName', //用户名字段
'PasswordField'=>'Password', //密码字段名
'Cookies_User'=>'User', //用户Cookies名
'Cookies_Token'=>'Token', //令牌Cookies名
'Cookies_Time'=>604800, //Cookies生命周期
'Token_Time'=>604800, //令牌生命周期,建议和Cookies数值一致
'TokenTable'=>'token', //令牌数据表名
'TokenTable_UserField'=>'User', //令牌数据表_用户名字段
'TokenTable_TokenField'=>'Token', //令牌数据表_令牌字段名
'TokenTable_CreateDateField'=>'CreateDate', //令牌数据表_令牌生成时间字段名
'TokenTable_TimeField'=>'Time', //令牌数据表_令牌有效时间字段名
'LoginURL'=>'登陆页面地址', //登陆页面地址
);
Function setup($strKeyName){
GLOBAL $Auth_Setup;
echo '
打印数组:';
print_r($Auth_Setup);
if(empty($strKeyName)===TRUE){
die('
传参为空');
}
if(is_string($strKeyName)===FALSE){
die('
传参不是有效数据类型。');
}
if(array_key_exists($strKeyName,$Auth_Setup)===TRUE){
return $Auth_Setup[$strKeyName];
}else{
die('
Auth模块的参数文件报错:要调取的参数名不存在。参数名:'.$strKeyName);
}
}
--------------------------------------------------------------
很简单,函数是一个封装函数,用于调用数组内的设置。但遇到个奇慢问题这个数组变量用GLOBAL引用进来后,确是空的。这是个是个PHP的BUG?
另外说明一下,这段代码的文件是被包含进另一个有命名空间的文件内。
今天遇到个很奇怪的问题,PHP的GLOBAL访问不到全局变量。
答案:2 悬赏:30 手机版
解决时间 2021-02-24 03:39
- 提问者网友:一抹荒凉废墟
- 2021-02-23 10:04
最佳答案
- 五星知识达人网友:梦中风几里
- 2021-02-23 11:26
GLOBAL变量(超全局变量) 不是这样用的吧... 好像应该是
$GLOBALS['Auth_Setup']=array(
'UserTable'=>'user', //用户数据表
'UserField'=>'UserName', //用户名字段
'PasswordField'=>'Password', //密码字段名
'Cookies_User'=>'User', //用户Cookies名
'Cookies_Token'=>'Token', //令牌Cookies名
'Cookies_Time'=>604800, //Cookies生命周期
'Token_Time'=>604800, //令牌生命周期,建议和Cookies数值一致
'TokenTable'=>'token', //令牌数据表名
'TokenTable_UserField'=>'User', //令牌数据表_用户名字段
'TokenTable_TokenField'=>'Token', //令牌数据表_令牌字段名
'TokenTable_CreateDateField'=>'CreateDate', //令牌数据表_令牌生成时间字段名
'TokenTable_TimeField'=>'Time', //令牌数据表_令牌有效时间字段名
'LoginURL'=>'登陆页面地址', //登陆页面地址
);
Function setup($strKeyName){
//GLOBAL $Auth_Setup;
$Auth_Setup=$GLOBALS['Auth_Setup'];
echo '
打印数组:';
print_r($Auth_Setup);
if(empty($strKeyName)===TRUE){
die('
传参为空');
}
if(is_string($strKeyName)===FALSE){
die('
传参不是有效数据类型。');
}
if(array_key_exists($strKeyName,$Auth_Setup)===TRUE){
return $Auth_Setup[$strKeyName];
}else{
die('
Auth模块的参数文件报错:要调取的参数名不存在。参数名:'.$strKeyName);
}
}
$GLOBALS['Auth_Setup']=array(
'UserTable'=>'user', //用户数据表
'UserField'=>'UserName', //用户名字段
'PasswordField'=>'Password', //密码字段名
'Cookies_User'=>'User', //用户Cookies名
'Cookies_Token'=>'Token', //令牌Cookies名
'Cookies_Time'=>604800, //Cookies生命周期
'Token_Time'=>604800, //令牌生命周期,建议和Cookies数值一致
'TokenTable'=>'token', //令牌数据表名
'TokenTable_UserField'=>'User', //令牌数据表_用户名字段
'TokenTable_TokenField'=>'Token', //令牌数据表_令牌字段名
'TokenTable_CreateDateField'=>'CreateDate', //令牌数据表_令牌生成时间字段名
'TokenTable_TimeField'=>'Time', //令牌数据表_令牌有效时间字段名
'LoginURL'=>'登陆页面地址', //登陆页面地址
);
Function setup($strKeyName){
//GLOBAL $Auth_Setup;
$Auth_Setup=$GLOBALS['Auth_Setup'];
echo '
打印数组:';
print_r($Auth_Setup);
if(empty($strKeyName)===TRUE){
die('
传参为空');
}
if(is_string($strKeyName)===FALSE){
die('
传参不是有效数据类型。');
}
if(array_key_exists($strKeyName,$Auth_Setup)===TRUE){
return $Auth_Setup[$strKeyName];
}else{
die('
Auth模块的参数文件报错:要调取的参数名不存在。参数名:'.$strKeyName);
}
}
全部回答
- 1楼网友:玩家
- 2021-02-23 12:12
搜一下:今天遇到个很奇怪的问题,PHP的GLOBAL访问不到全局变量。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯