3v4l.org

run code in 300+ PHP versions simultaneously
<?php function createCompressedString($shorts) { $compressLen = $compressPos = $currentLen = $currentPos = 0; $inBlock = false; for ($i = 0; $i < 8; $i++) { if ($shorts[$i] === 0) { if (!$inBlock) { $inBlock = true; $currentPos = $i; } $currentLen++; } else if ($inBlock) { if ($currentLen > $compressLen) { $compressLen = $currentLen; $compressPos = $currentPos; } $inBlock = false; $currentPos = $currentLen = 0; } } if ($inBlock) { $compressLen = $currentLen; $compressPos = $currentPos; } if ($compressLen === 8) { return '::'; } if ($compressLen > 1) { if ($compressPos === 0 || $compressPos + $compressLen === 8) { array_splice($shorts, $compressPos, $compressLen, ['', '']); } } return implode(':', array_map(function($short) { return $short === '' ? '' : dechex($short); }, $shorts)); } var_dump(createCompressedString([1, 0, 0, 0, 1, 2001, 23234, 21]));
Output for git.master, git.master_jit, rfc.property-hooks
string(21) "1:0:0:0:1:7d1:5ac2:15"

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:
44.3 ms | 401 KiB | 8 Q