zoukankan      html  css  js  c++  java
  • PHP的引用举例


     
    mongodb 是没有  id 自增的 
    也就是 插入第一条 
    id=1
    插入第二条  id=2
     

    我们写一个mongodb类
    具体代码我就不说了 我这里就简单的列举一下
    原型  $db->insert($data=array(),$options=array()){}

    然后我们插入 数据的时候是这样的 
    $db->insert(array("test"=>"测试")); //插入成功并没有id 
    我们封装一个 insert 类

    function insert(array $data,$options=[]){
            $this->before($data); //这里的befor 是引用$data
            return $this->db->insert($data,$options);
        }
    
     protected function before(&$data) {
                 $pk='id';
                if(!isset($data[$pk])) {
             
                    $data[$pk]   =  $this->id($pk);
                }
        }
    
       
    

    来看 before 的原型 (&$data)
    检测到 $data数组不存$data['id']
    $data['id']=id()//自增字段

    来看一下id的函数 ()
    protected function id($pk) {
           $result   =  $this->find(array(),array($pk=>1))->sort(array($pk=>-1))->limit(1); //查询字段id 
            $data = $result->getNext(); //获取下一条数据
            return isset($data[$pk])?$data[$pk]+1:1; //不存在id id默认1 存在+1
        }
    

    回到刚才的插入 $db->insert(array("test"=>"测试")); 
    因为再插入之前增加了一个引用函数before
    那么 数组就变成了 array("test"=>"测试","id"=>1) //存在就是id+1
  • 相关阅读:
    this指向
    this指向
    this指向
    this指向
    a=b=c 连等赋值的分析
    测试应用documentFragment 和 直接操作dom 的区别
    javascript 基本数据类型、引用数据类型
    判断一个变量的具体类型 的终极方案
    判断变量是否为 NaN
    C#稳固基础:传统遍历与迭代器
  • 原文地址:https://www.cnblogs.com/freespider/p/2811556.html
Copyright © 2011-2022 走看看