PHP按位运算符的问题 - 转换为Coldfusion

时间:2014-10-02 23:00:52

标签: php coldfusion bit-manipulation

试图弄清楚这究竟是什么以及如何将其转换为Coldfusion标签:

$result |= ord($built{$i}) ^ ord($signature{$i});

我想我很接近:

<cfset result = BitOr(ASC(built[i]),ASC(ARGUMENTS.signature[i])) />

  1. 我知道=错了,但我在PHP文档中找不到|=到底在做什么。
  2. builtsignature是字符串,php代码使用{$i},我不明白为什么。
  3. 不确定BitOr是否正确,或者我是否应该使用其他功能之一。
  4. 任何人都想验证我在做什么,并提供有关我可能出错的地方的见解?

1 个答案:

答案 0 :(得分:1)

试试这个:

<cfset result = BitOr(result, BitXor(ASC(built[i]),ASC(ARGUMENTS.signature[i]))) />

^是xor运算符,而不是or运算符。此外,在PHP(以及许多其他语言)中,x |= y表示与x = x | y相同(x += y表示与x = x + y相同,依此类推。)