吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1094|回复: 12
收起左侧

[求助] php语句分析

[复制链接]
ww903 发表于 2020-5-13 15:17
请教各位大侠这句是啥意思
is_array(current($data)) || $data = [$data];

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

傍晚升起的太阳 发表于 2020-5-13 15:28
面向百度编程就看出来了吧。。。。。。
先is_array判断current($data)是否是数组
current是返回数组当前指针的值   也就是说之前没移动过指针的话,那么这个值就是data的第一个键值对,
也就是判断data的第一个键值对是否为数组  如果为数组 这句表达式返回true  后面不执行
如果不为数组  则$data = [0=>$data];    并且返回true
傍晚升起的太阳 发表于 2020-5-13 15:30
最后一句说的不对。。。。如果$data为空的话,最后返回false!
 楼主| ww903 发表于 2020-5-13 15:31
傍晚升起的太阳 发表于 2020-5-13 15:28
面向百度编程就看出来了吧。。。。。。
先is_array判断current($data)是否是数组
current是返回数组当前 ...

多谢大侠回复,本人小白 那么 $data = [0=>$data];  是什么意思呢?
傍晚升起的太阳 发表于 2020-5-13 15:31
就赋值啊。。。。。把自身放到一个数组里,然后再赋值回自身
罗子 发表于 2020-5-13 15:32
大致意思就是检测$data的值是否存在如果存在就用它 不存在就用$data 。并且把值赋给他!
 楼主| ww903 发表于 2020-5-13 15:33
傍晚升起的太阳 发表于 2020-5-13 15:31
就赋值啊。。。。。把自身放到一个数组里,然后再赋值回自身

哦 哦。 多谢。多谢拉
 楼主| ww903 发表于 2020-5-13 15:39
我把完成的function 发过来吧
 楼主| ww903 发表于 2020-5-13 15:40
//通过预处理方式执行SQL
function db_query($sql, $type='', $data=[]){
        //获取数据库连接
        $link = db_connect();
        //预处理SQL语句
        if(!$stmt = mysqli_prepare($link, $sql)){
                E('数据库操作失败。', mysqli_error($link)."\nSQL语句:".$sql);
        }
        //无参数绑定时,直接执行
        if($data == []){
                mysqli_stmt_execute($stmt);
        }else{
                //批量处理
                $data = (array)$data;                                                        //如果不是数组,强制转换为数组
                is_array(current($data)) || $data = [$data];        //自动识别批量模式
                $params = array_shift($data);                                        //准备待绑定的变量
                db_bind_param($stmt, $type, $params);                        //参数绑定
                mysqli_stmt_execute($stmt);                                                //执行第1个
                foreach($data as $row){                                                        //批量执行剩余的
                        foreach($row as $k=>$v){
                                $params[$k] = $v;        //变更参数值
                        }
                        mysqli_stmt_execute($stmt);
                }
        }
        return $stmt;
}

就是中间批量处理这一段看不大懂

ytw6176 发表于 2020-5-13 15:52
ww903 发表于 2020-5-13 15:40
//通过预处理方式执行SQL
function db_query($sql, $type='', $data=[]){
        //获取数据库连接

建议看看基础语法。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 17:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表