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 git.master, git.master_jit, rfc.property-hooks
<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>

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
153.93 ms | 416 KiB | 5 Q