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

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

4 ответов


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


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

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


$addr=strtok($_SERVER['REQUEST_URI'],'?');

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


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

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

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

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