3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Odometer { public function __construct(array $values, $max_places = 0){ $this->values = array_values($values); $this->max_places = $max_places; reset($values); $this->register[0] = key($values); end($values); $this->limit = key($values); } public function iterate($force = false){ $rollback = $this->register; $this->register[0]++; for($i = 0; $i < count($this->register); $i++){ if($this->register[$i] > $this->limit){ $this->register[$i] = 0; if(isset($this->register[$i+1])){ $this->register[$i+1]++; } else { if($this->max_places && count($this->register)+1 > $this->max_places && !$force){ $this->register = $rollback; return; } $this->register[$i+1] = 0; } } } } public function setMeter(){ for($i = 0; $i < count($this->register); $i++){ $this->meter[$i] = $this->values[$this->register[$i]]; } } public function readMeter(){ $this->setMeter(); return '[' . implode('][', array_reverse($this->meter)) . ']' . "\n"; } } $o = new Odometer(range('a','c'), 2); echo $o->readMeter(); for($i = 0; $i < 20; $i++){ $o->iterate(false); echo $o->readMeter(); }
Output for git.master, git.master_jit, rfc.property-hooks
Deprecated: Creation of dynamic property Odometer::$values is deprecated in /in/gT7Nq on line 5 Deprecated: Creation of dynamic property Odometer::$max_places is deprecated in /in/gT7Nq on line 6 Deprecated: Creation of dynamic property Odometer::$register is deprecated in /in/gT7Nq on line 9 Deprecated: Creation of dynamic property Odometer::$limit is deprecated in /in/gT7Nq on line 12 Deprecated: Creation of dynamic property Odometer::$meter is deprecated in /in/gT7Nq on line 36 [a] [b] [c] [a][a] [a][b] [a][c] [b][a] [b][b] [b][c] [c][a] [c][b] [c][c] [c][c] [c][c] [c][c] [c][c] [c][c] [c][c] [c][c] [c][c] [c][c]

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:
53.04 ms | 402 KiB | 8 Q