zoukankan      html  css  js  c++  java
  • 认识key及新鲜应用模式.

       php中数组的索引通常叫作key, 在C语言中称为下标. 例如: $array['test'] = 1000; 这个test就是key值, 1000就是属性值, 也是赋值. 通常我们在使用时多数以val值为标准, 比如 if($array['test'] == 1000) 判断应用.  echo "test : {$array['test']}"; 打印应用, foreach($array as $val) 循环应用. 基本上我们会淡忘了key值. 为什么称为淡忘, 最明显的就是从url上的get可以明显看得出来.以下为举例.
       一个新需求, 程序跟据某个用户的金钱来发送优惠码. 绝大多数开发者会如此组合:
       index.php?user=jack&pay=1000;
       很明显, get数组创建了两个下标, 分配了相应的内存空间. 而没有去思考, 其实jack就是下标.比如
       index.php?jack=1000;
       这样有什么问题呢? 很多人会震惊了, 这不对呀, 我怎么取得到jack? 这是针对下标做了优化的后果, 使得url更精简, 理解上更人性化, jack有1000元. 那么我们怎么能够获取jack的随机值呢, 因为很可能会是andy=500, peter=300这样的.
       其实我们已经要开始放弃传统的key/val对应的思维方式. 以key为索引去找数据已经不能满足目前的需求. 我们得以位组计算来理解.
       index.php?user=jack&pay=1000;
       第1组: user.
       第2组: jack.
       第3组: pay.
       第4组: 1000.
       利用array_value()及array_key()函数我们需要将get整理成如下格式:
       array(
         1=>'jack',
         2=>'1000',
       )
      
       在使用中, 我就直接看位数来使用, 比如取用户名就是 $get[1];  取金钱就是$get[1]; 特别在单一入口及插件入口上, 对key值进行有效利用是作用非常大的. 比如通常我们引入某个应用文件,如下url.
       index.php?d=temp&f=main
       很明显的是调用temp目录中的main.inc.php文件, 那要是换成新鲜的写法呢?
       index.php?temp=main
       更简洁, 更扩展性, key与val值都可以变更.
      
       我们再深入将应用扩展化, 思考一下传统的url伪静态. 比如
       index/user/jack/pay/1000.html
       这是框架及多数伪静态都会采用的模式, 在这模式上, 你就能够完全理解到key已经不再重要, 已经混淆在一起. 我们伪静态写法: ^index(.*)$ index.php?g=$1 [L] 映射到php=$1上, 那么经过php处理也可以产生出新数组:
       array(
         1=>'user',
         2=>'jack',
         3=>'pay',
         4=>'1000',
       )
       这样一来, 无论你增加任意的参数及值, 都可以伪静态起来, 比如 index/a.html  , index/page/9.html

       更为重要的是, 即使你如此做, 旧有的key理解仍然有效, 你仍然可以通过$_GET['jack'] 来取得属性1000的值, 你可以改变自己的思维来适应这种转变, 同时又可以参齐着一些旧有的使用习惯. 这不仅仅是缩短了url, 更重要的是思维转变.

      end

  • 相关阅读:
    开博客啦
    C语言 变长参数表的使用方法
    禅道程序员
    【转】函数式编程另类指南
    Servlet中JSP页面跳转的两种方法以及其区别
    《C程序设计语言》(学习笔记)——结构体
    C#保存wps和office表格.数据源为list<T>类型
    中国网建的短信接口实现
    C#保存wps和office表格.数据源为list<T>类型,
    MD5加密
  • 原文地址:https://www.cnblogs.com/phpnew/p/2168499.html
Copyright © 2011-2022 走看看