php 之session_register函数 smallnews笔记

今天自己研究dedecms 发现后台管理员保持登陆状态的session是用一个session_register,突然感觉好神奇,就像研究下dede的session是如何存储的,打开看之后真是大跌眼镜呀!

session_register 函数

这是之前php手册上对这个函数的说明:session_register Register one or more global variables with the current session

意思是在当前回话中创建一个或多个全局变量,说白了就是定义一个session 变量!


接下来发现了这个:Warning:自 PHP 5.3.0 起,已经废弃此函数。强烈建议不要应用此函数 。

在此提醒,php5.2版本的同志们,千万别在直接用这个函数啦,到时候升级php时就成为麻烦啦!

如果使用了session_register函数的解决方法:

    if (!function_exists('session_register'))
    {
        function session_register()
        { 
            $args = func_get_args(); 
            foreach ($args as $key){ 
                $_SESSION[$key]=$GLOBALS[$key]; 
            } 
        } 
        function session_is_registered($key) //检查变量是否已经存在
        {
            return isset($_SESSION[$key]); 
        }
        function session_unregister($key){ 
            unset($_SESSION[$key]); 
        }
    }

就是重新自己定义一个session_register函数!


函数func_get_args获取函数调用是传递过来的参数的数组!

实例:

<?php
function foo($a='gg',$b='kk'){
    $numargs = func_num_args();                                                             //获取参数的个数,和实际调用foo($a='gg',$b='kk')中的参数个数一致,和函数中的默认参数无关
     echo "一共传递了 $numargs 个参数<br />";
     if ($numargs >= 2) {
         echo "第二个参数的值是: " . func_get_arg(1) . "<br />\n";           //获取实际调用foo($a='gg',$b='kk')中的第二个参数的值
     }


    $arg_list = func_get_args();                                                                  //获取实际调用foo($a='gg',$b='kk')中的所有参数数组
    echo "<pre>";
    print_r($arg_list);
    echo "</pre>";

    foreach($arg_list as $key => $value):
          echo $key."的值是".$value."<br>";
    endforeach;
}
foo($a='gg',$b='kk');
?>

输出结果:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值