$mod_r = 0;
(tzn wyświetla się "coś")
natomiast działa
$mod_r = "cos";
(wyświetla się "nic")
W szczególności chodzi mi o to, dlaczego w pierwszym przykładzie 0 jest interpretowane jako string 'coś'... Doedukować bym się potrzebował

$mod_r = 0;
$mod_r = "cos";
Tekstu "cos" nie da się skonwertować do jakiejś sensownej liczby, więc przyjmowana jest wartość zero, a zero już zeru równe.
if ($mod_r == (int) "cos")