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 — Find position of last occurrence of a string in a string
   Performs a multibyte safe
   strrpos() operation based on the 
   number of characters. needle position is
   counted from the beginning of
   haystack. First character's position is
   0. Second character position is 1. 
  
haystack
       The string being checked, for the last occurrence
       of needle
      
needle
       The string to find in haystack.
      
offsethaystack. Negative values will stop searching at an arbitrary point
       prior to the end of the haystack.
      
     encodingThe encoding
parameter is the character encoding. If it is omitted or null, the internal character
encoding value will be used.
   Returns the numeric position of
   the last occurrence of needle in the
   haystack string. If
   needle is not found, it returns false.
  
offset is greater than the length of
    haystack, a
    ValueError will be thrown.
   
  | Version | Description | 
|---|---|
| 8.0.0 | needlenow accepts an empty string. | 
| 8.0.0 | Passing the encodingas the third argument 
       instead of anoffsethas been removed. | 
| 8.0.0 | encodingis nullable now. | 
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)
?>