3v4l.org

run code in 300+ PHP versions simultaneously
<?php function charclass($flag) { define('WARRIOR_OFFSET', 16); define('MAGE_OFFSET', 17); define('CLASS_MASK', ( 1 << WARRIOR_OFFSET ) | ( 1 << MAGE_OFFSET )); define('CF_GOD', 1 << 2); // may issue #god commands define('CF_PLAYER', 1 << 3); // is a player define('CF_STAFF', 1 << 4); // member of the staff define('CF_INVISIBLE', 1 << 5); // character is completely invisible define('CF_GENDER', 1 << 14 | 1 << 15); // Determine Gender define('CF_ARCH', 1 << 18); // is arch-XXX define('CF_LQMASTER', 1 << 52); // may host LQs $classMap = array( 0b00 => 'error', 0b01 => 'warrior', 0b10 => 'mage', 0b11 => 'seyan', ); $class = $flag & CLASS_MASK; $class = $class >> WARRIOR_OFFSET; $class_name = $classMap[$class]; $is_god = $flag & CF_GOD; $is_arch = $flag & CF_ARCH; $is_staff = $flag & CF_STAFF; if ($is_god) { print "Godly "; } if ($is_staff) { print "Staffer "; } if ($is_arch) { print "Arch "; } print "$class_name\n"; } function chargender($flag) { define('MALE_OFFSET', 14); define('FEMALE_OFFSET', 15); define('GENDER_MASK', ( 1 << MALE_OFFSET ) | ( 1 << FEMALE_OFFSET )); $classMap = array( 0b00 => 'error', 0b01 => 'Male', 0b10 => 'Female', 0b11 => 'error', ); $gender = $bitmask & GENDER_MASK; $gender = $gender >> MALE_OFFSET; $gender_name = $classMap[$gender]; print "$gender_name\n"; } echo chargender(475149); echo charclass(475149);

preferences:
44.69 ms | 402 KiB | 5 Q