I came across this line of code in an application I am revisi开发者_开发百科ng:
substr($sometext1 ^ $sometext2, 0, 512);
What does the ^
mean?
^
is the bitwise exclusive OR operator. For each bit in a value, it looks to see if that bit is the same in the other value; if it is the same, a 0 is output in its place, otherwise a 1 is output. For example:
00001111
^ 01010101
--------
01011010
XOR (exclusive OR):
$a ^ $b means bits that are set in $a or $b, but not both, are set.
It's a bitwise operator.
Example:
"hallo" ^ "hello"
It outputs the ASCII values #0
#4
#0
#0
#0
('a'
^ 'e'
= #4
).
It's the XOR (exclusive-or) operator. For strings it's used as simple encryption.
That's the bitwise OR operator - in PHP, it also applies to strings.
In PHP, ^
means 'bitwise XOR'. Your code XORs together two strings, then returns at most the first 512 characters.
In other words it does this:
return (at most the first 512 characters of (someText1 XOR someText2))
^
matches the starting position within the string. In line-based tools, it matches the starting position of any line.
精彩评论