如果找不到分隔符,我希望explode
返回一个空数组。
目前,我这样做是为了获得我想要的explode
行为:
if (strpos($line, ' ') === false) {
$entries = [];
} else {
$entries = explode(' ', $line);
}
必须有一种更简洁的方式来获取此行为,而无需使用preg_split
。 preg_split
有自己的行为也是不受欢迎的,例如在结果数组条目中包含分隔符。
答案 0 :(得分:2)
因此,您有一串空格分隔数据,例如'foo bar'
?您的规则是,如果没有分隔符,这意味着如果字符串是单个值('foo'
)或空字符串(''
),那么您需要一个空数组;否则你想要分割分隔数据?
$entries = explode(' ', $line);
if (count($entries) < 2) {
$entries = [];
}
没有一种理智的方法可以缩短这个特定条件,但是这会删除对字符串的冗余检查,并清楚地说明代码尝试做什么。