php 中trim(null)的值是空(即”)
在开发中遇到一个特殊情况:
在使用ajax请求时,php程序中并没有获取到get或post的参数,前端也没有传递这些参数,因此我在程序中判断这些参数存不存在是用的$param !== null
来判断的。
然而,每次请求,这个判断都和预期的不一致,在没有传递参数的情况下,这个表达式的值总是为false
,因此很郁闷,开始了自己的bug之旅。
经过十几二十分钟的排查,对比刚获取的值及判断该值前的结果,发现刚获取时值内容确实为null
,而在判断前该值却变成空了。于是进行深一步的排查,又发现,该值在trim()后内容才改变的。所以结果为,trim(null)的值为空,而不是null,因此判断trim(null)的值不等于null是错误的。