Javascript JS到PHP错误
我有一些JS代码,我想转换成PHP代码。我改变了所有我知道应该做的事情,但结果不一样 PHP代码我从JS代码创建:Javascript JS到PHP错误,javascript,php,Javascript,Php,我有一些JS代码,我想转换成PHP代码。我改变了所有我知道应该做的事情,但结果不一样 PHP代码我从JS代码创建: <?php function hashCode($str){ $hash = 0; if (strlen($str) == 0) return $hash; for ($i = 0; $i < strlen($str); $i++) { $char = $str[$i]; $hash = (($hash
<?php
function hashCode($str){
$hash = 0;
if (strlen($str) == 0) return $hash;
for ($i = 0; $i < strlen($str); $i++) {
$char = $str[$i];
$hash = (($hash<<5) - $hash) + $char;
$hash = $hash & $hash;
}
return $hash;
}
?>
输入字符串时
它返回0,这不是因为if函数。原始代码:
hashCode = function(str){
var hash = 0;
if (str.length == 0) return hash;
for (i = 0; i < str.length; i++) {
char = str.charCodeAt(i);
hash = ((hash<<5)-hash)+char;
hash = hash & hash; // Convert to 32bit integer
}
return hash;
}
hashCode=函数(str){
var散列=0;
如果(str.length==0)返回哈希;
对于(i=0;i hash=((hash这是因为,在javascript中,char是字符的代码(charCodeAt)
。因此这也会做同样的事情。使用ord($char)
它不起作用,我试着用一个简单的词,比如“felien”,结果出现了JS:-1278196699和PHP:3016770597,所以它不能完全起作用。
function hashCode($str) {
$hash = 0;
if (strlen($str) == 0) {
return $hash;
}
for ($i = 0; $i < strlen($str); $i++) {
$char = $str[$i];
$hash = (($hash << 5) - $hash) + ord($char);
$hash = $hash & $hash;
}
return $hash;
}
65
2081
64578
2001986
2001986