Php `explode`未找到分隔符行为

Php `explode`未找到分隔符行为,php,split,Php,Split,如果未找到分隔符,我希望explode返回一个空数组 目前,我这样做是为了获得我想要的explode行为: if (strpos($line, ' ') === false) { $entries = []; } else { $entries = explode(' ', $line); } 必须有一种更简洁的方法来获得这种行为,而不必使用preg\u sp

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

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

            if (strpos($line, ' ') === false) {
                $entries = [];
            } else {
                $entries = explode(' ', $line);
            }
必须有一种更简洁的方法来获得这种行为,而不必使用
preg\u split
preg_split
有自己的行为,这也是不可取的,例如在结果数组项中包含分隔符。

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

$entries = explode(' ', $line);
if (count($entries) < 2) {
    $entries = [];
}
$entries=分解(“”,$line);
如果(计数($entries)<2){
$entries=[];
}
实际上,没有一种合理的方法来缩短此特定条件,但这样可以消除对字符串的冗余检查,并清楚地说明代码试图执行的操作。

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

$entries = explode(' ', $line);
if (count($entries) < 2) {
    $entries = [];
}
$entries=分解(“”,$line);
如果(计数($entries)<2){
$entries=[];
}

确实没有一种合理的方法来缩短这个特定条件,但这消除了对字符串的冗余检查,并清楚地说明了代码试图做什么。

你的问题是什么?有没有更简洁的方法来获得我在问题中详细描述的行为?也许:
if($entries[0]=$line){…
better:
if(count($entries)==1)$entries=[];
if($entries[0]=$line)数据是如何生成的/在哪里生成的?这听起来像是应该在验证数据的地方处理的事情。你的问题是什么?有没有更简洁的方法来获取我在问题中详细描述的行为?也许:
if($entries[0]=$line){…
更好:
如果(计数($entries)==1)$entries=[];
数据是如何生成的/在哪里生成的?这听起来像是应该在验证数据的地方处理的事情。