THINKPHP如何调用discuz的$_G全局变量啊,有做过的同学讲一下啊
这个是http://localhost/smart_bendi/bbs2/config.bbs.inc.php
代码如下:
<?php
require '../bbs2/source/class/class_core_smart.php';//引入系统核心文件
$discuz = & discuz_core::instance();//以下代码为创建及初始化对象
$discuz->cachelist = $cachelist;
$discuz->init();//以上是调用discuz公共执行类等核心代码
//$_G是个大数组
$dddaaaccc124d1= array(
'uid'=>$_G['uid'],
'username'=>$_G['username'],
'adminid'=>$_G['adminid'],
'groupid'=>$_G['groupid'],
'sid'=>$_G['sid'],
'formhash'=>$_G['formhash'],
'connectguest'=>$_G['connectguest'],
'timestamp'=>$_G['timestamp'],
'starttime'=>$_G['starttime'],
'clientip'=>$_G['clientip'],
'referer'=>$_G['referer'],
'charset'=>$_G['charset'],
'gzipcompress'=>$_G['gzipcompress'],
'authkey'=>$_G['authkey'],
);
print_r($dddaaaccc124d1);
$var='test';
return $dddaaaccc124d1;
?>
可以获取到$dddaaaccc124d1数组,能print_r出来。
但是我在ThinkPHP/Lib/UserAction.class.php写了一个index方法,访问地址:http://localhost/smart_bendi/web/User-index
却只能获取到数组下标,我尝试的在刚才的文件里定义一个$var='test';却可以获取到。
输出结果:
Array ( [uid] => [username] => [adminid] => [groupid] => [sid] => [formhash] => [connectguest] => [timestamp] => [starttime] => [clientip] => [referer] => [charset] => [gzipcompress] => [authkey] => ) test
这是为什么,ThinkPHP把$_G给销毁掉了吗?
求路过的同学帮忙看看,愁死我了,卡住好几天了。
============================================================================
问题补充:
@skcks 的方法管用!!!
谢谢兄弟!!!!
Answers
谢谢兄弟,你的方法管用。
获取的问题解决了,我也把他写成了一个类,方便调用。
下面是代码:
<?php
class UserAction extends Action{
function logininfo(){
include '../bbs/source/class/class_core.php';
$discuz = & discuz_core::instance();//以下代码为创建及初始化对象
$discuz->cachelist = $cachelist;
$discuz->init();//以上是调用discuz公共执行类等核心代码
global $_G;
$arr1= array(
'uid'=>$_G['uid'],
'username'=>$_G['username'],
'adminid'=>$_G['adminid'],
'groupid'=>$_G['groupid'],
'sid'=>$_G['sid'],
'formhash'=>$_G['formhash'],
'connectguest'=>$_G['connectguest'],
'timestamp'=>$_G['timestamp'],
'starttime'=>$_G['starttime'],
'clientip'=>$_G['clientip'],
'referer'=>$_G['referer'],
'charset'=>$_G['charset'],
'gzipcompress'=>$_G['gzipcompress'],
'authkey'=>$_G['authkey'],
);
//dump($arr1);
return $arr1;
}
}
?>
但是我又发现了另外一个严重的问题。
我建立了一个TestAtion,代码如下
<?php
class TestAction extends Action{
function test(){
$user=new UserAction();
$user_login_info=$user->logininfo();
$this->assign('userinfo',$user_login_info);
//$local=new Model('Local');
$this->display();
}
}
?>
如果我把$local=new Model('Local');这句代码备注掉,模板可以正常显示{$userinfo['username']}等变量。
但是不备注$local=new Model('Local');什么都不能显示。
反过来也是一样,把
$user=new UserAction();
$user_login_info=$user->logininfo();
$this->assign('userinfo',$user_login_info);
这么3行去掉,模板可以正常显示,也可以获取Local的信息。
总而言之,他们2个犯冲,只能显示其一。