mb_strrpos throws a warning if $haystack is empty. 
strrpos simply returns FALSE.
This is something to be wary of if overloading the mb functions.(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_strrpos — Ищет в строке позицию последнего вхождения подстроки
   Функция выполняет безопасную многобайтовую операцию
   strrpos() на основе количества символов, а не байтов.
   Функция отсчитывает позицию подстроки needle
   с начала строки haystack.
   Первый символ стоит на позиции 0, позиция второго символа — 1 и так далее.
  
haystack
       Строка (string), в которой требуется найти последнее вхождение
       подстроки needle.
      
needle
       Подстрока (string) для поиска
       в строке haystack.
      
offsetencoding
 Параметр encoding указывает кодировку символов.
 При пропуске параметра или передаче значения null
 функция интерпретирует символы в предустановленной кодировке модуля.
   Функция возвращает числовую позицию последнего вхождения подстроки needle
   в строку (string) haystack или значение false,
   если строка не содержит подстроку needle.
  
offset превысит
    длину строки haystack.
   
  | Версия | Описание | 
|---|---|
| 8.0.0 | needleтеперь принимает пустую строку. | 
| 8.0.0 | Запретили передачу названия кодировки для параметра encodingв третьем аргументе вместо параметра offset. | 
| 8.0.0 | Параметр encodingтеперь принимает значениеnull. | 
mb_strrpos throws a warning if $haystack is empty. 
strrpos simply returns FALSE.
This is something to be wary of if overloading the mb functions."Negative values will stop searching at an arbitrary point prior to the end of the string. " ist misleading.
The needle may not fully part of searchrange, defined by a negative offset. 
A negative offsets marks the last byte, where a search could start.
<?php
$test = "Hallo, Herr Gött";
var_dump(strlen($test));                       // int(17)
var_dump(mb_strrpos($test,'ött',13));  // int(13)
var_dump(mb_strrpos($test,'ött',-4)); // int(13) 17-4 = 13
var_dump(mb_strrpos($test,'ött',-5)); // bool(false)
?>