`explode`分隔符找不到行为

时间:2018-01-04 20:52:43

标签: php split

如果找不到分隔符,我希望explode返回一个空数组。

目前,我这样做是为了获得我想要的explode行为:

            if (strpos($line, ' ') === false) {
                $entries = [];
            } else {
                $entries = explode(' ', $line);
            }

必须有一种更简洁的方式来获取此行为,而无需使用preg_splitpreg_split有自己的行为也是不受欢迎的,例如在结果数组条目中包含分隔符。

1 个答案:

答案 0 :(得分:2)

因此,您有一串空格分隔数据,例如'foo bar'?您的规则是,如果没有分隔符,这意味着如果字符串是单个值('foo')或空字符串(''),那么您需要一个空数组;否则你想要分割分隔数据?

$entries = explode(' ', $line);
if (count($entries) < 2) {
    $entries = [];
}

没有一种理智的方法可以缩短这个特定条件,但是这会删除对字符串的冗余检查,并清楚地说明代码尝试做什么。