I think you're on to something, because if I use 65536, which you say is out of range, $bigIndex is always 0. That would tend to indicate that the expression is a bitwise comparison that returns a number and that 65536 is false.
I do know that in this case it is somehow assuring that $bigIndex must be even and that it can at least be as high as the total number of entries in the array, yet no higher.
If I remove it entirely:
Code:
$bigIndex = rand(0, (count($quotations) -1));
$bigIndex can be odd. If I use a lower number (here the actual length of the array):
Code:
$bigIndex = rand(0, (count($quotations) -1)) & 572;
$bigIndex has to be even again but now cannot be more than a certain amount, though since it's random, I'm not sure exactly, but it's obviously much less than the number used.
So it obviously set a limit. If the number is odd, then $bigIndex can be even or odd.
So I basically understand its function here. Just not what it's called or how it's working.
In simplest terms, it rounds down to the nearest even number.
Bookmarks