- var_dump: documentation ( source)
- sprintf: documentation ( source)
<?php
class Distribution extends SPLFixedArray {
private $keyMask;
public function __construct(int $digits = 1) {
parent::__construct(10 ** $digits);
$this->keyMask = "%0{$digits}s";
}
public function current(): int {
return parent::current() ?? 0;
}
public function key(): string {
return sprintf($this->keyMask, parent::key());
}
public function addValue(string $key, int $value = 1) {
$this->offsetSet((int) $key, $this->offsetGet((int) $key) + $value);
}
}
$distribution = new Distribution(4);
$distribution['8'] = ($distribution['8'] ?? 0) + 1;
var_dump($distribution);
This script was stopped while abusing our resources