织梦设置全局环境变量函数SetSysEnv()

admin2020-01-16538

函数名:SetSysEnv($typeid=0,$typename='',$aid=0,$title='',$curfile='')

参数:$typeid 栏目id,$typename 栏目名;$aid文档id,$title 标题也可以理解为文档名,这样就和前面的栏目一样,成对出现理解起来就容易;$curfile 当前文件

所在文件:/include/helpers/channelunit.helper.php

其实这个函数非常简单,声明全局变量$_sys_globals,这个数组其实是在common.inc.php公共包含文件定义的,在这个文件里面是这样定义的:

$_sys_globals['curfile'] = '';
$_sys_globals['typeid'] = 0;
$_sys_globals['typename'] = '';
$_sys_globals['aid'] = 0;

他初始化了四个单元,并把默认值赋为空或0,为什么要定义这个,因为,在我们实例化一个对象时,有可能要用到栏目id,栏目标题,文档id或文档标题,当前文件等,这是经常用到的,若在实例化时,就把这些单值取出来,然后,存放在这个特殊变量里面,而且,还是全局的变量,这样我们在用到这个相关的值后就不用再重新去查数据库了,这样方便,最重要的是如果多次使用,就省不少时间。

这个在很多类中都有使用,例如视图类,文档列表类等都有使用,一次设置后面只要是调用这个实例化的对象,就可以多次使用,既方便又安全更能提高代码的执行效率,要不织梦官方也不会把这个数组定义到common.inc.php里面,要知道并不是随便一个变量都可以定义到这个文件里面,必须是特别特别重要的内容并且,经常使用的内容才可以在这个文件里面调用,如果定义多了调用这个文件时,就会多执行代码,如果少了效果也不好,所以,能把这个数组写入到这个文件可见这个数组的重要性了,虽然,我们既使作为织梦二次开发人员,这个数组几乎用不到,但是,这个变量确实比较重要的。

本教程的函数SetSysEnv()就是来设置这个数组值的,也就是给这个数组$_sys_globals赋值的,所以,比较简单。

    if(empty($_sys_globals['curfile']))
    {
        $_sys_globals['curfile'] = $curfile;
    }

判断$_sys_globals['curfile']是否为空,若不为空,则把参数$curfile赋给$_sys_globals,依次类推,把栏目id,文档id,栏目名,标题赋给对应的值。这个函数就这么简单。

网友评论