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 не найдена.
  
| Версия | Описание | 
|---|---|
| 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)
?>