3v4l.org

run code in 300+ PHP versions simultaneously
<?php enum ResponseType { case Informational; case Success; case Redirect; case ClientError; case ServerError; case Teapot; case Unknown; } function getErrorType(int $code) { return match (true) { $code === 418 => ResponseType::Teapot, $code >= 100 && $code < 200 => ResponseType::Informational, $code >= 200 && $code < 300 => ResponseType::Success, $code >= 300 && $code < 400 => ResponseType::Redirect, $code >= 400 && $code < 500 => ResponseType::ClientError, $code >= 500 && $code < 600 => ResponseType::ServerError, default => ResponseType::Unknown, }; } $test = [108, 200, 201, 307, 404, 418, 500, 615]; foreach ($test as $code) { var_dump($code, getErrorType($code)); }
Output for git.master_jit, git.master
int(108) enum(ResponseType::Informational) int(200) enum(ResponseType::Success) int(201) enum(ResponseType::Success) int(307) enum(ResponseType::Redirect) int(404) enum(ResponseType::ClientError) int(418) enum(ResponseType::Teapot) int(500) enum(ResponseType::ServerError) int(615) enum(ResponseType::Unknown)

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:
51.22 ms | 406 KiB | 5 Q