Какая польза от функции strtok()
в PHP? Как лучше, чем другие строковые функции, делающие то же самое?
Что такое использование функции strtok() в PHP, как лучше, чем другие строковые функции, делающие то же самое?
Ответ 1
Нет другой функции строки, которая делает то же самое. Такие функции, как explode
, возвращают полную разделительную строку в массиве. strtok
, с другой стороны, возвращает только одну часть за раз, причем каждый последующий вызов возвращает следующий фрагмент. Это потенциально намного экономичнее и сохраняет память для больших строк.
Ответ 2
$addr=strtok($_SERVER['REQUEST_URI'],'?');
но не называйте это "лучше". это просто еще один способ сделать это.
Ответ 3
strtok
является предпочтительным по сравнению с другой функцией, когда вам нужно разделить строку на более чем один разделитель.
Другая функция, которая выглядит как preg_split, split основаны на регулярных выражениях и будут иметь связанные с ними накладные расходы.
Ответ 4
strtok()
- отличная и очень полезная функция, но:
-
Эта функция может возвращать логическое значение
FALSE
, но также может возвращать и не булево значение, которое оценивается какFALSE
(руководство по PHP). -
Если вы хотите использовать токены только одной буквой, функция explode
explode(
) работает намного быстрее, чемstrtok()
(Source). -
Если у вас есть критическое решение по использованию памяти, вы должны иметь в виду, что функция strtok хранит входной строковый параметр (или ссылку на него?) В памяти после использования (Source).