博客列表 >COOKIE SESSION 与初识命名空间

COOKIE SESSION 与初识命名空间

超超多喝水
超超多喝水原创
2021年10月24日 23:27:17614浏览

COOKIE SESSION 与初识命名空间

  • cookie 适用于处理我们需要长久保存数据的功能,且该数据在不同页面都可以加载出来
  • 使用 cookie 功能会用到$_COOKIE 超全局变量数组,它是服务器对用户访问的跟踪手段
  • 但是,$_COOKIE 直接存入的变量无法在其他页面直接访问
  • 设置 cookie 需要用到 setcookie()方法,setcookie 方法有两个参数,第一个是下标,第二个是值
  • setcookie()方法第一次运行是在 Set-Cookie 中存储数据,第二次运行 Cookie 才能获取数据(即页面需要刷新)
  • cookie 需要注意,得是在同一域名下的页面,才能访问到
  • cookie 可以重复设置下标的值,已达到覆盖的效果
  • setcookie 还有第三个参数,即设定过期时间,具体为当前时间戳 time()+要存放的时间(秒)
  • cookie 下标与值的删除:cookie 的删除有两种方法,第一种是设置要存放的时间为负数,即可删除,第二种是给 cookie 的变量重新赋一个空值,也可以做到删除的效果
  • setcookie 除设置下标跟值意外,还可以设置一个数组
  • setcookie 设置数组后,数组里信息的删除,需要逐个删除
  1. // 设置cookie,一小时后过期
  2. setcookie('uname','admin',time()+3600);
  3. //重新给cookie赋值
  4. setcookie('uname','admin666',time()+3600);
  5. // 删除cookie
  6. setcookie('uname','admin',time()-1);
  7. setcookie('uname',null);
  8. // 或
  9. setcookie('uname');
  10. //设置cookie为数组
  11. setcookie('info[name]','admin');
  12. setcookie('info[gender]','male');
  13. setcookie('info[age]','18');
  14. // 销毁整个数组的缓存
  15. if(!empty($_COOKIE['info'])){
  16. foreach($_COOKIE['info']as$key=>$value){
  17. setcookie("info[{$key}]");
  18. }
  19. }else{
  20. echo '该缓存不存在';
  21. }
  22. echo '<pre>';
  23. print_r($_COOKIE);

SESSION

  • 除了 cookie,我们还可以使用 session 来保存数据,session 与 cookie 的不同之处在于 cookie 是存在浏览器中的,session 是存在我们的服务器上的
  • 与 cookie 类似,session 也有一个超全局变量数组$_SESSION
  • session 使用之前需要使用 session_start()来开启一个 session 会话
  • session 的设置是直接用$_SESSION[\’下标\’]=\’值\’;的方式来添加跟修改的
  • session 的单个删除有 unset()
  • session 的全部删除有 session_unset();跟 session_destroy();两种,前者只会清空 session 的内容,但是之前创建的 session 文件还会保留下来,后面的 session_destroy()是可以直接销毁 session 文件的
  • 每个用户生成的 session 文件都有一个 id,这个 id 与文件名里的 id 一致,可以使用 session_id()获取
  1. session_start();
  2. // $_SESSION['uname'] = 'admin';
  3. // $_SESSION['gender'] = 'male';
  4. // $_SESSION['age'] = 18;
  5. // $_SESSION['id'] = 1;
  6. echo '<pre>';
  7. print_r($_SESSION);
  8. echo '<hr>';
  9. //获取session文件id
  10. echo session_id();
  11. // 删除单个下标
  12. unset($_SESSION['id']);
  13. //清空session文件内容
  14. session_unset();
  15. //删除session文件
  16. session_destroy();

命名空间

  • 命名空间是用来解决命名冲突的问题,比如相同变量名的两个变量的值会被覆盖,函数的函数名不能重名,使用命名空间就能很好的解决这两个问题。
  • 命名空间使用 namespace 关键字来声明
  • 命名空间的声明必须在除严谨函数 declare 外正式代码第一行(注释不算)
  • 命名空间的规范也是一个文件一个命名空间
  • 命名空间的声明方法一般有两种,一个是 namespace 空间名;另一种是 namespace 空间名{}
  • 两种命名空间的声明方法只能同时用一种,不能两种混用
  • 命名空间的使用采用了目录结构的方式
  • 在本命名空间使用其他命名空间的内容时,路径必须以\开头
  • 子命名空间使用父命名空间名+\+子命名空间的方式来命名
  1. // 声明one命名空间
  2. namespace one;
  3. function demo(){
  4. return 'one\'s demo';
  5. }
  6. echo demo();
  7. echo '<hr>';
  8. // 声明two命名空间
  9. namespace two;
  10. function demo(){
  11. return 'two\'s demo';
  12. }
  13. echo demo();
  14. echo '<hr>';
  15. echo \one\demo();
  16. echo '<hr>';
  17. echo '<hr>';
  18. // 声明one命名空间的子命名空间one_1
  19. namespace one\one_1;
  20. function demo(){
  21. return 'one_1\'s demo';
  22. }
  23. echo demo();
  24. echo '<hr>';
  25. echo \one\demo();
  1. // 声明one命名空间
  2. namespace one {
  3. function demo()
  4. {
  5. return 'one\'s demo';
  6. }
  7. echo demo();
  8. echo '<hr>';
  9. }
  10. // 声明two命名空间
  11. namespace two {
  12. function demo()
  13. {
  14. return 'two\'s demo';
  15. }
  16. echo demo();
  17. echo '<hr>';
  18. }
  19. //什么都不加默认是根空间
  20. namespace {
  21. echo \one\demo();
  22. echo '<hr>';
  23. echo \two\demo();
  24. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议