3v4l.org

run code in 300+ PHP versions simultaneously
<?php $h = ""; $rest = ""; $D = [0 => "zero","one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", 30 => "thirty", 40 => "forty", 50 => "fifty", 60 => "sixty", 70 => "seventy",80 => "eighty",90 => "ninety"]; function validate($x, $len) { $retval = null; if (!isset($x)){ echo "\$x is unset\n"; $retval = false; } else if (is_float($x) ){ echo "Floats are unsupported in this version.\n"; $retval = false; } else if ( $len == 0) { echo "Empty value\n"; $retval = false; } else if ( $x < 0) { echo "Negative numbers are currently unsupported.\n"; $retval = false; } else if ($len > 4) { echo "Numbers with more than 4 digits are unsupported\n"; $retval = false; } else { $retval = true; } return $retval; } function num2en( $x, $words) { $len = strlen($x); // Get number of digits in given number $retval = null; if( validate($x, $len) === false) { return false; } // handle number by length and digit(s) switch($len) { case 1: $retval = "$words[$x]\n"; break; case 2: if ( isset($words[$x]) ) { $retval = "$words[$x]\n"; } else if( preg_match('/^(.)(.)$/', $x, $matches ) ){ $retval = $words[ $matches[1] . '0'] . '-' . $words[ $matches[2]] . "\n"; } break; case 3: preg_match('/^(.)(..)$/',$x,$matches ); [$h, $rest] = [ $words[$matches[1]]." hundred", $matches[2] ]; if ( strcmp( $rest,'00') === 0 ) { $retval = $h; } if ($h == '0') { $retval = "and " . num2en(0 + $rest, $words); } $retval = $h . " and " . num2en( 0 + $rest, $words); break; case 4: $firstDigit = preg_split("//", $x, -1, PREG_SPLIT_NO_EMPTY )[0]; $retval = $words[$firstDigit] . " thousand " . num2en(substr($x,1,3), $words); break; } return $retval; } $bla; echo @num2en( $bla, $D ); echo num2en( -13, $D ); echo num2en( 1.5, $D ); echo num2en( 1, $D ); echo num2en( 10, $D ); echo num2en( 101, $D ); echo num2en( 1203, $D); echo num2en( 9999, $D); echo num2en( 19999, $D);
Output for git.master, git.master_jit, rfc.property-hooks
$x is unset Negative numbers are currently unsupported. Floats are unsupported in this version. one ten one hundred and one one thousand two hundred and three nine thousand nine hundred and ninety-nine Numbers with more than 4 digits are unsupported

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