ww903 发表于 2020-5-13 15:17

php语句分析

请教各位大侠这句是啥意思
is_array(current($data)) || $data = [$data];

傍晚升起的太阳 发表于 2020-5-13 15:28

面向百度编程就看出来了吧。。。。。。
先is_array判断current($data)是否是数组
current是返回数组当前指针的值   也就是说之前没移动过指针的话,那么这个值就是data的第一个键值对,
也就是判断data的第一个键值对是否为数组如果为数组 这句表达式返回true后面不执行
如果不为数组则$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 = ;是什么意思呢?

傍晚升起的太阳 发表于 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=[]){
        //获取数据库连接


建议看看基础语法。。
页: [1] 2
查看完整版本: php语句分析