Использует ли strlen
количество байтов в строке путем итерации по строке или просто возвращает значение уже рассчитанной длины строки из индекса?Какова эффективность strlen() в PHP?
Причина моего вопроса в том, что у меня есть выбор для хранения предварительно вычисленных значений очень длинных строк для скоростного скрипта, или я мог бы просто использовать функцию strlen
и сохранить время кодирования.
Но я действительно хотел бы знать, как работает strlen
, поскольку я склонен полагаться на него много, и, возможно, это не очень хорошая идея?
UPDATE
Смотрите мой тест ниже.
Это O (1) - это * не * как строка C, которая является O (n). – 2013-03-02 07:02:21
Я не могу найти документацию, подтверждающую его, но я уверен, что это заранее рассчитано. Строки PHP не изменяются, как строки C. – Barmar
PHP с открытым исходным кодом, вы можете проверить код .... – Barmar