В PHP, когда я запускаю следующую команду:Использование preg_split на пустой строке
$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 значение по умолчанию, поэтому я ожидаю, что результаты будут одинаковыми в обоих случаях.
Вы пытались считать символы с помощью функции 'strlen()'? – Jer
PREG_SPLIT_NO_EMPTY Если этот флаг установлен, то preg_split() будет возвращать только непустые кусочки. поэтому его значение onli non emty так использует другой, как «PREG_SPLIT_DELIM_CAPTURE» –