PHP与JavaScript,按位运算符

PHP与JavaScript,按位运算符,javascript,php,bitwise-operators,Javascript,Php,Bitwise Operators,我有一个JavaScript函数: function myFunc(a, b, c) { return (a ^ (b | (~c))); } 以及PHP中的等效项: function myFunc($a, $b, $c) { return ($a ^ ($b | (~$c))); } 它们的结果不一样: myFunc('123', '4434', '355'); // PHP = ��� (Unknown Characters) myFunc('123', '4434', '3

我有一个JavaScript函数:

function myFunc(a, b, c)
{
  return (a ^ (b | (~c)));
}
以及PHP中的等效项:

function myFunc($a, $b, $c)
{
    return ($a ^ ($b | (~$c)));
}
它们的结果不一样:

myFunc('123', '4434', '355'); // PHP = ��� (Unknown Characters)
myFunc('123', '4434', '355'); // JavaScript = -91

这里怎么了?

在PHP中,您需要手动转换为整数

function myFunc($a, $b, $c)
{
    return ((int)$a ^ ((int)$b | (~(int)$c)));
}

谢谢这真的很有帮助。根据手册:如果操作数是字符串,那么将对组成字符串的字符的ASCII值执行操作