3v4l.org

run code in 300+ PHP versions simultaneously
<?php $states = ["AGGR", "NOMOVE", "COWARD", "NOATTSHINSU", "NOATTCHUNJO", "NOATTJINNO", "ATTMOB", "BERSERK", "STONESKIN", "GODSPEED", "DEATHBLOW", "REVIVE"]; $samples = ["AGGR", "AGGR,BERSERK", "AGGR,BERSERK,DEATHBLOW,REVIVE", "AGGR,BERSERK,STONESKIN", "AGGR,BERSERK,STONESKIN,DEATHBLOW", "AGGR,BERSERK,STONESKIN,DEATHBLOW,REVIVE", "AGGR,BERSERK,STONESKIN,DEATHBLOW,REVIVE", "AGGR,DEATHBLOW", "AGGR,GODSPEED", "AGGR,GODSPEED", "AGGR,NOATTCHUNJO", "AGGR,NOATTJINNO", "AGGR,NOATTSHINSU", "AGGR,NOMOVE", "AGGR,REVIVE", "AGGR,STONESKIN", "BERSERK", "BERSERK,STONESKIN", "COWARD", "NOMOVE", "AGGR,NOMOVE,BERSERK,GODSPEED,DEATHBLOW", "NOMOVE,STONESKIN", "NOMOVE,STONESKIN", "REVIVE"]; function states2flags($userStates, $allStates) { $userFlags = 0; $bit = 1; foreach ($allStates as $state) { if (in_array($state, $userStates)) { $userFlags += $bit; } $bit <<= 1; } return $userFlags; } function flags2states($userFlags, $allStates) { $userStates = []; $bit = 1; foreach ($allStates as $state) { if ($userFlags & $bit) { $userStates[] = $state; } $bit <<= 1; } return $userStates; } foreach($samples as $sample) { $sampleStates = explode(",", $sample); $sampleFlags = states2flags($sampleStates, $states); $reverseStates = flags2states($sampleFlags, $states); $reverseFlags = states2flags($reverseStates, $states); $textColor = (count(array_diff($sampleStates, $reverseStates)) > 0) ? "red" : "green"; echo '<a class="' . $textColor . '">' . $textColor . ' Original Data - <b>' . $sample . ' [' . $sampleFlags . ']</b> - Reverse Data - <b>' . implode(",", flags2states($sampleFlags, $states)) . ' ['.$reverseFlags. ']</b><br>'; }
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0 - 8.5.1
<a class="green">green Original Data - <b>AGGR [1]</b> - Reverse Data - <b>AGGR [1]</b><br><a class="green">green Original Data - <b>AGGR,BERSERK [129]</b> - Reverse Data - <b>AGGR,BERSERK [129]</b><br><a class="green">green Original Data - <b>AGGR,BERSERK,DEATHBLOW,REVIVE [3201]</b> - Reverse Data - <b>AGGR,BERSERK,DEATHBLOW,REVIVE [3201]</b><br><a class="green">green Original Data - <b>AGGR,BERSERK,STONESKIN [385]</b> - Reverse Data - <b>AGGR,BERSERK,STONESKIN [385]</b><br><a class="green">green Original Data - <b>AGGR,BERSERK,STONESKIN,DEATHBLOW [1409]</b> - Reverse Data - <b>AGGR,BERSERK,STONESKIN,DEATHBLOW [1409]</b><br><a class="green">green Original Data - <b>AGGR,BERSERK,STONESKIN,DEATHBLOW,REVIVE [3457]</b> - Reverse Data - <b>AGGR,BERSERK,STONESKIN,DEATHBLOW,REVIVE [3457]</b><br><a class="green">green Original Data - <b>AGGR,BERSERK,STONESKIN,DEATHBLOW,REVIVE [3457]</b> - Reverse Data - <b>AGGR,BERSERK,STONESKIN,DEATHBLOW,REVIVE [3457]</b><br><a class="green">green Original Data - <b>AGGR,DEATHBLOW [1025]</b> - Reverse Data - <b>AGGR,DEATHBLOW [1025]</b><br><a class="green">green Original Data - <b>AGGR,GODSPEED [513]</b> - Reverse Data - <b>AGGR,GODSPEED [513]</b><br><a class="green">green Original Data - <b>AGGR,GODSPEED [513]</b> - Reverse Data - <b>AGGR,GODSPEED [513]</b><br><a class="green">green Original Data - <b>AGGR,NOATTCHUNJO [17]</b> - Reverse Data - <b>AGGR,NOATTCHUNJO [17]</b><br><a class="green">green Original Data - <b>AGGR,NOATTJINNO [33]</b> - Reverse Data - <b>AGGR,NOATTJINNO [33]</b><br><a class="green">green Original Data - <b>AGGR,NOATTSHINSU [9]</b> - Reverse Data - <b>AGGR,NOATTSHINSU [9]</b><br><a class="green">green Original Data - <b>AGGR,NOMOVE [3]</b> - Reverse Data - <b>AGGR,NOMOVE [3]</b><br><a class="green">green Original Data - <b>AGGR,REVIVE [2049]</b> - Reverse Data - <b>AGGR,REVIVE [2049]</b><br><a class="green">green Original Data - <b>AGGR,STONESKIN [257]</b> - Reverse Data - <b>AGGR,STONESKIN [257]</b><br><a class="green">green Original Data - <b>BERSERK [128]</b> - Reverse Data - <b>BERSERK [128]</b><br><a class="green">green Original Data - <b>BERSERK,STONESKIN [384]</b> - Reverse Data - <b>BERSERK,STONESKIN [384]</b><br><a class="green">green Original Data - <b>COWARD [4]</b> - Reverse Data - <b>COWARD [4]</b><br><a class="green">green Original Data - <b>NOMOVE [2]</b> - Reverse Data - <b>NOMOVE [2]</b><br><a class="green">green Original Data - <b>AGGR,NOMOVE,BERSERK,GODSPEED,DEATHBLOW [1667]</b> - Reverse Data - <b>AGGR,NOMOVE,BERSERK,GODSPEED,DEATHBLOW [1667]</b><br><a class="green">green Original Data - <b>NOMOVE,STONESKIN [258]</b> - Reverse Data - <b>NOMOVE,STONESKIN [258]</b><br><a class="green">green Original Data - <b>NOMOVE,STONESKIN [258]</b> - Reverse Data - <b>NOMOVE,STONESKIN [258]</b><br><a class="green">green Original Data - <b>REVIVE [2048]</b> - Reverse Data - <b>REVIVE [2048]</b><br>
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.

preferences:
145.9 ms | 410 KiB | 5 Q