explode —— 使用一个字符串分割另一个字符串

在涉及到多项相同属性的数据时,习惯性地用逗号隔开,然后放到一个字段里。然后要用的时候,用explode分割开得到数据。
之前碰到字段值为空的情况下,分割得到竟然不是空数组,而是包含一个空字串的长度为一的数据。一直搞不懂什么原因,明明是空的怎么分割出来一个空的元素。之后一直就先判断字段是否为空,再做具体操作。

查看PHP手册,发现一句这样的话:
*A string that doesn't contain the delimiter will simply
return a one-length array of the original string.*

  • 一个不包含分割符的字符串会直接返回一个包含原始字串的长度为一的数组。

所以,不是因为字符串为空,才返回这样的不理想的结果,而是字符串中不包含分割符,会直接把原始字串作为数组的一个元素进行返回。

explode(",","fool") = array("fool")
explode("|","x,y") = array("x,y")
explode("","")  // 直接报错,提示分割符不能为空
explode(",","") = array("")