3v4l.org

run code in 300+ PHP versions simultaneously
<?php define('WEIGHTS', [7, 3, 1]); define('WEIGHTS_COUNT', count(WEIGHTS)); $customerNumber = 1; $invoiceNumber = 25; $refBase = sprintf('%d%04d', $customerNumber, $invoiceNumber); $weightedSum = 0; for ($x = 0, $i = strlen($refBase) - 1; $i >=0; --$i, ++$x) { $weightedSum += $refBase[$i] * WEIGHTS[$x % WEIGHTS_COUNT]; } echo $refBase . (ceil($weightedSum / 10) * 10 - $weightedSum);

preferences:
25.92 ms | 406 KiB | 5 Q