1
こんにちは、私はRuby言語でPHP関数を変換しようとしています。結果が異なるため があるがエラーである PHP言語での関数は次のとおりです。phpからrubyへの変換でエラーが発生しました
はfunction rpHash($value) {
$hash = 5381;
$value = strtoupper($value);
for($i = 0; $i < strlen($value); $i++) {
$hash = (($hash << 5) + $hash) + ord(substr($value, $i));
}
return $hash;
}
私はルビーで作ってみました機能は次のとおりです。私もその指摘してきた
def real_person_hash value
hash = 5381
value = value.to_s.upcase
for i in 0..(value.length - 1)
hash = ((hash << 5) + hash) + value[i]
end
hash
end
Es.
value = "nzxs"
php function returns:
2089377688
ruby function :
6384344984
サイクルの最初の3つの値は等しい。最後のサイクルでのみ異なる なぜですか?
あなたはどのバージョンのRubyをお使いですか?これを実行しているサンプル値を両方の出力から得ることができますか? – Dogbert
私は上記の例を挙げました。私はruby reeを使っています。1.8.7 –
この例では値が逆になっていると思います。 – Dogbert