全局中间件之 ConvertEmptyStringsToNull
简介
上一章,我们看了 第三个 全局中间件 TrimStrings,知道了它的作用:对 $_GET 和 $_POST 的数据进行前后空白字符清理。
这一章,我们看 第四个 全局中间件 ConvertEmptyStringsToNull。
通过字面意思可以出是 关于空字符转成 null 一种处理。

ConvertEmptyStringsToNull 的内容
<?php
namespace Illuminate\Foundation\Http\Middleware;
class ConvertEmptyStringsToNull extends TransformsRequest
{
    /**
     * 核心方法
     */
    protected function transform($key, $value)
    {
        return is_string($value) && $value === '' ? null : $value;
    }
}
喔!!!,,继承了 TransformsRequest 类,和上一章一样哦。就是 transform 方法不一样。
关于如何调用的 transform 方法,请移步上一章了解----->传送门
return is_string($value) && $value === '' ? null : $value;
这句代码意思是:如果 $_GET 或 $_POST 中的值是字符串,且这个字符串是空,那么给它转成 null 返回,否则原样返回。
附录
TrimStrings 中间件与 ConvertEmptyStringsToNull 中间件联合会造成什么样的结果呢:
假设你 GET 或 POST 上传的数据中,有一个字段,全是空格、制表符、换行符、回车符、字符串结尾符(\0)、垂直制表符,无论多少还是混合,最后都会给你变成一个大大 null ,高兴不。。。。嘿嘿。。。