Какая польза от функции 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).