3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Distance { public const UNIT_KILOMETERS = 'kilometers'; public const UNIT_MILES = 'miles'; private const KILOMETERS_IN_1MILE = 1.609344; private float $distance = 0.0; private string $unit = self::UNIT_KILOMETERS; public function __construct(float $distance, string $unit = self::UNIT_KILOMETERS) { $this->set_distance($distance, $unit); } public function set_distance($distance, string $unit = ''): object { if (empty($unit)) { $unit = $this->unit; } if (!in_array($unit, [self::UNIT_KILOMETERS, self::UNIT_MILES])) { throw new Exception("Invalid Unit [$unit]"); } $this->distance = $distance; $this->unit = $unit; return $this; } public function get_distance(string $unit = ''): float { if (empty($unit)) { $unit = $this->unit; } if ($unit == $this->unit) { return $this->distance; } switch ($unit) { case self::UNIT_KILOMETERS: return $this->distance * self::KILOMETERS_IN_1MILE; case self::UNIT_MILES: return $this->distance / self::KILOMETERS_IN_1MILE; default: throw new Exception("Invalid Unit [$unit]"); } return 0.0; } public function distance_format(string $unit = '', int $decimal_point = 2, string $decimal_separator = '.', $thousands_separator = ','): string { return number_format($this->get_distance($unit), $decimal_point, $decimal_separator, $thousands_separator) . " " . $unit; } } $distance = new Distance(10.0, Distance::UNIT_KILOMETERS); echo $distance->get_distance() . PHP_EOL; echo $distance->get_distance(Distance::UNIT_KILOMETERS) . PHP_EOL; echo $distance->get_distance(Distance::UNIT_MILES) . PHP_EOL; echo $distance->distance_format() . PHP_EOL; echo $distance->distance_format(Distance::UNIT_KILOMETERS) . PHP_EOL; echo $distance->distance_format(Distance::UNIT_MILES) . PHP_EOL; $distance->set_distance(25); echo $distance->get_distance() . PHP_EOL; echo $distance->get_distance(Distance::UNIT_KILOMETERS) . PHP_EOL; echo $distance->get_distance(Distance::UNIT_MILES) . PHP_EOL; echo $distance->distance_format() . PHP_EOL; echo $distance->distance_format(Distance::UNIT_KILOMETERS) . PHP_EOL; echo $distance->distance_format(Distance::UNIT_MILES) . PHP_EOL; $distance->set_distance(10, Distance::UNIT_MILES); echo $distance->get_distance() . PHP_EOL; echo $distance->get_distance(Distance::UNIT_KILOMETERS) . PHP_EOL; echo $distance->get_distance(Distance::UNIT_MILES) . PHP_EOL; echo $distance->distance_format() . PHP_EOL; echo $distance->distance_format(Distance::UNIT_KILOMETERS) . PHP_EOL; echo $distance->distance_format(Distance::UNIT_MILES) . PHP_EOL;
Output for git.master, git.master_jit, rfc.property-hooks
10 10 6.2137119223733 10.00 10.00 kilometers 6.21 miles 25 25 15.534279805933 25.00 25.00 kilometers 15.53 miles 10 16.09344 10 10.00 16.09 kilometers 10.00 miles

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:
28.16 ms | 405 KiB | 5 Q