Что такое использование функции strtok () в PHP, как лучше, чем другие строковые функции, делающие то же самое? - PullRequest
21 голосов
/ 27 марта 2010

Что такое Использование функции strtok () в PHP, как лучше, чем другие строковые функции, делающие то же самое?

Ответы [ 4 ]

34 голосов
/ 27 марта 2010

Нет другой строковой функции, которая делает такую ​​же вещь. Такие функции, как explode, возвращают полную строку разбиения в массиве. strtok, с другой стороны, возвращает только один фрагмент за раз, а каждый последующий вызов возвращает следующий фрагмент. Это потенциально намного более экономично и экономит память для больших строк.

6 голосов
/ 27 марта 2010

strtok предпочтительнее, чем другие функции, когда вам нужно разделить строку на несколько разделителей .

Другая функция, такая как preg_split , split , основана на регулярных выражениях и будет связана с ними накладными расходами.

6 голосов
/ 27 марта 2010
$addr=strtok($_SERVER['REQUEST_URI'],'?');

но не называйте это "лучше". это просто еще один способ сделать это.

0 голосов
/ 12 июня 2017

strtok() - отличная и очень полезная функция, но:

  • Эта функция может возвращать логическое значение FALSE, но также может возвращать и не логическое значение, которое оценивается как FALSE. ( Руководство по PHP )

  • Если вы хотите токенизировать только одной буквой, explode() намного быстрее по сравнению с strtok(). ( Источник )

  • Если у вас есть критическое решение по использованию памяти, вы должны иметь в виду, что функция strtok хранит входной строковый параметр (или ссылку на него?) В памяти после использования. ( Источник )

...