在空字符串上使用 preg_split
Using preg_split on an empty string
在PHP时,我运行执行以下命令:
$text = "";
$arr = preg_split('/,/', $text, PREG_SPLIT_NO_EMPTY);
print_r($arr);
我得到以下包含一个空元素的数组:
Array
(
[0] =>
)
然而,如果我 运行 它以 -1 作为限制:
$text = "";
$arr = preg_split('/,/', $text, -1, PREG_SPLIT_NO_EMPTY);
print_r($arr);
我得到一个完全空的数组:
Array
(
)
为什么会这样?根据 PHP manual -1 是默认值,因此我希望两种情况下的结果相同。
preg_split($pattern , $subject [, int $limit = -1 [, int $flags = 0 ]] )
preg_split('/,/' , $text , PREG_SPLIT_NO_EMPTY );
第三个参数是限制,PREG_SPLIT_NO_EMPTY == 1
,当您将 PREG_SPLIT_NO_EMPTY
作为第三个参数传递时,您是在告诉它限制是 1 - 您 不是 将其作为标志传递。
在PHP时,我运行执行以下命令:
$text = "";
$arr = preg_split('/,/', $text, PREG_SPLIT_NO_EMPTY);
print_r($arr);
我得到以下包含一个空元素的数组:
Array
(
[0] =>
)
然而,如果我 运行 它以 -1 作为限制:
$text = "";
$arr = preg_split('/,/', $text, -1, PREG_SPLIT_NO_EMPTY);
print_r($arr);
我得到一个完全空的数组:
Array
(
)
为什么会这样?根据 PHP manual -1 是默认值,因此我希望两种情况下的结果相同。
preg_split($pattern , $subject [, int $limit = -1 [, int $flags = 0 ]] ) preg_split('/,/' , $text , PREG_SPLIT_NO_EMPTY );
第三个参数是限制,PREG_SPLIT_NO_EMPTY == 1
,当您将 PREG_SPLIT_NO_EMPTY
作为第三个参数传递时,您是在告诉它限制是 1 - 您 不是 将其作为标志传递。