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 — Encontra a posição da última ocorrência de uma string em outra string
   Realiza uma operação segura para multibyte
   strrpos() com base no
   número de caracteres. A posição de needle
   é contada a partir do início de
   haystack. A posição do primeiro caractere é
   0. A posição do segundo caractere é 1.
  
haystack
       A string que está sendo verificada, para a última ocorrência
       de needle
      
needle
       A string a ser encontrada em haystack.
      
offsetencodingO parâmetro encoding
é a codificação de caracteres. Se for omitido ou null, o valor da codificação
de caracteres interna será usado.
   Retorna a posição numérica da
   última ocorrência de needle na
   string haystack. Se
   needle não for encontrada, retorna false.
  
offset for maior que o comprimento de
     haystack, um
     ValueError será lançado.
    
   | Versão | Descrição | 
|---|---|
| 8.0.0 | O parâmetro needleagora aceita uma string vazia. | 
| 8.0.0 | O envio de encodingcomo terceiro argumento
       em vez de uma posição foi removido. | 
| 8.0.0 | O parâmetro encodingagora pode ser nulo. | 
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)
?>