Если у вас нет поддержки GMP, всегда есть что-то подобное. Недостатком является работа только с двоичными строками длиной до 32 бит.
function hamdist($x, $y){
for($dist = 0, $val = $x ^ $y; $val; ++$dist){
$val &= $val - 1;
}
return $dist;
}
function hamdist_str($x, $y){
return hamdist(bindec($x), bindec($y));
}
echo hamdist_str('10101010','01010101'); //8