Механизм перегрузки функций &warn.deprecated.feature-7-2-0.removed-8-0-0; Зачастую заставить работать существующее PHP-приложение в многобайтовом окружении оказывается довольно трудной задачей. Это происходит, потому что большинство PHP-приложений написано с использованием стандартных функций обработки строк, таких как substr, которые не умеют работать со строками в многобайтовых кодировках. mbstring поддерживает механизм 'перегрузки функций', который позволяет сообщить приложению о том, что используется многобайтовая кодировка, без модификации кода, отвечающего за работу со строками. Например, если включена перегрузка функций, то функция mb_substr будет вызываться вместо substr. Этот механизм во многих случаях позволяет портировать приложения, поддерживающие только однобайтовые кодировки, в многобайтное окружение. Для использования механизма перегрузки функций нужно задать настройке mbstring.func_overload в &php.ini; положительное значение, которое представляет собой комбинацию битовых масок, определяющих категории функций, которые нужно перегружать. Это будет число 1 для перегрузки функции mail. 2 для строковых функций, 4 для функций регулярных выражений. Например, если значение настройки равно 7, то почтовые, строковые и функции регулярных выражений будут перегружаться. Список перегружаемых функций приведён ниже. Функции, которые будут перегружены значение настройки mbstring.func_overload исходная функция перегруженная функция 1 mail mb_send_mail 2 strlen mb_strlen 2 strpos mb_strpos 2 strrpos mb_strrpos 2 substr mb_substr 2 strtolower mb_strtolower 2 strtoupper mb_strtoupper 2 stripos mb_stripos 2 strripos mb_strripos 2 strstr mb_strstr 2 stristr mb_stristr 2 strrchr mb_strrchr 2 substr_count mb_substr_count
Не рекомендуется использовать перегрузку функций в контексте каждой директории, так как добиться стабильной работы в этом случае пока не удалось, и это может привести к неожидаемому поведению приложения.