一般情况下,都是在参数非空的情况下进行explode操作,例如
$a = "a,b,c";
$b = explode(',',$a);
此时会返回结果
array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }
但是如果传入的参数为空呢?
$a = '';
$b = explode(',',$a);
此时会返回什么样的结果呢,是不是会认为返回
array(0) { }
其实不是,它会返回
array(1) { [0]=> string(0) "" }
如果你把它当做空数组处理,那么后续的逻辑统统会出错,因为它并不是一个空数组,empty并不能使它返回true,因此在使用explode的时候一定要注意第二个参数的值,最好先进行非空判断,之后再进行explode操作。