# 3v4l.org

run code in 200+ php & hhvm versions
<?php /** * Riddle: Bit Play #1 * ------------------- * This riddle may move, add, remove, compair, and evaluate bit values. It is * suggested that you brush up on your binary and bitwise operators before * starting. */ \$answer = 0; // put your answer here and run to check if you are right // The Setup function luhn(\$number) { settype(\$number, 'string'); \$sumTable = array( array(0,1,2,3,4,5,6,7,8,9), array(0,2,4,6,8,1,3,5,7,9)); \$sum = 0; \$flip = 0; for (\$i = strlen(\$number) - 1; \$i >= 0; \$i--) { \$sum += \$sumTable[\$flip++ & 0x1][\$number[\$i]]; } return \$sum % 10 === 0; } settype(\$answer, 'integer'); \$s = (string) \$a = &\$answer; \$ns = (string) \$n = (isset(\$s[1])) ? (\$a >> 1)+\$s[1] : (\$a >> 1)+\$s[0]; \$f = ((int) \$ns[0] ^ (int) \$s[1]); // The Riddle function riddle(\$a, \$n, \$s, \$f, \$ns) { if ( (\$a != 0 && luhn(\$a)) && (!\$f) && ((\$n | \$a) == 63) && (!isset(\$s[2])) ) { return TRUE; } return FALSE; } // The Result if (riddle(\$a, \$n, \$s, \$f, \$ns)) { echo "You got the correct answer! (\$a)"; } else { echo "Sorry, wrong answer. (\$a)"; }
Output for 5.2.10 - 7.1.10
Notice: Uninitialized string offset: 1 in /in/3j4Qv on line 29 Sorry, wrong answer. (0)
Output for 4.3.3 - 4.4.9, 5.0.2 - 5.2.9
Notice: Uninitialized string offset: 1 in /in/3j4Qv on line 29 Sorry, wrong answer. (0)
Output for 4.3.0 - 4.3.2, 5.0.0 - 5.0.1
Notice: Uninitialized string offset: 1 in /in/3j4Qv on line 28 Notice: Uninitialized string offset: 1 in /in/3j4Qv on line 29 Sorry, wrong answer. (0)