php-laravel 灵魂拷问:是否为空、怎么查库

目录

一、是否为空

1、总结

2、验证

二、怎么查库

1、总结

2、验证


一、是否为空

1、总结

(1)false、null、''、"" 等。

              echo 不会显示,dump() 会显示 false。

(2)空值:''、""、0、'0'、"0"、false、[]、Array() 等。

              isset() 都是 ture,empty() 都是 true。

(3)null:null。

              empty() 是 true,isset() 是 false。

2、验证

        echo 0;
        echo null;     //打印不出来
        echo 0;
        echo false;    //打印不出来
        echo 0;
        echo '';       //打印不出来
        echo 0;
        echo "";       //打印不出来
        echo 0;
        echo '
'; echo '----------------------------------'; dump(empty(null)); // true dump(empty('')); // true dump(empty("")); // true dump(empty(0)); // true dump(empty('0')); // true dump(empty(false)); // true dump(empty([])); // true dump(empty(Array())); // true dump(empty((object)(null))); // false echo '----------------------------------'; dump(""); //"" dump(''); //"" dump(null); //null dump([]); //[] dump(Array()); //[]

二、怎么查库

1、总结

(1)批量查询

尽量使用

        echo '-----------------get()->toArray()-----------------';
        // 批量查询
        $res = Website::where('id', 1)->get()->toArray();  //找不到是空数组,找到是数组
        // 非空判断
        if(isset($res) && !empty($res)){
            //执行
        }
        if(!isset($res) || empty($res)){
            //跳过
        }

不使用

        echo '-----------------get()-----------------';
        $res = Website::where('id', 1)->get();  //找不到是只包含属性的集合,找到是属性+数据的集合
        //无法判断是否有数据

(2)单个查询

尽量使用

        echo '-----------------first()-----------------';
        //单个查询
        $res = Website::where('id', 1)->first();  //找不到是null,找到是对象
        //非空判断
        if(isset($res) && !empty($res)){
            //执行
        }
        if(!isset($res) || empty($res)){
            //跳过
        }

不使用

        echo '-----------------first()->toArray()-----------------';
        $res = Website::where('id', 1)->first()->toArray();    //找不到是null->toArray()报错,找到是一维数组
        //避免使用,因为查不到数据会报错

2、验证

public function test() {

        echo '-----------------get()-----------------';
        $res = Website::where('id', 1)->get();  //找不到是只包含属性的集合,找到是属性+数据的集合
        dump($res);              //$res=Collection{}
        dump(isset($res));       //true
        dump(empty($res));       //false
        //无法判断是否有数据

        echo '-----------------get()->toArray()-----------------';
        $res = Website::where('id', 1)->get()->toArray();  //找不到是空数组,找到是数组
        dump($res);              //$res=[]
        dump(isset($res));       //true
        dump(empty($res));       //true
        //可以判断是否有数据
        //方式一
        if(isset($res) && !empty($res)){
            //执行
        }
        if(!isset($res) || empty($res)){
            //跳过
        }
        //方式二
        if(!empty($res)){
            //执行
        }
        if(empty($res)){
            //跳过
        }

        echo '-----------------first()-----------------';
        $res = Website::where('id', 1)->first();  //找不到是null,找到是对象
        dump($res);              //null
        dump(isset($res));       //false
        dump(empty($res));       //true
        //方式一
        if(isset($res) && !empty($res)){
            //执行
        }
        if(!isset($res) || empty($res)){
            //跳过
        }
        //方式二
        if(isset($res)){
            //执行
        }
        if(!isset($res)){
            //跳过
        }
        //方式三
        if(!empty($res)){
            //执行
        }
        if(empty($res)){
            //跳过
        }

        echo '-----------------first()->toArray()-----------------';
        $res = Website::where('id', 1)->first()->toArray();    //找不到是null->toArray()报错,找到是一维数组
        //避免使用,因为查不到数据会报错
}

 

 

 

 

 

 

你可能感兴趣的:(PHP,&,Laravel)