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 8.1.0 - 8.1.33, 8.2.23 - 8.2.29, 8.3.5 - 8.3.25, 8.4.1 - 8.4.12
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)
Output for 8.0.1 - 8.0.22
Parse error: syntax error, unexpected identifier "ResponseType" in /in/5mkYA on line 3
Process exited with code 255.
Output for 7.4.0 - 7.4.30
Parse error: syntax error, unexpected 'ResponseType' (T_STRING) in /in/5mkYA on line 3
Process exited with code 255.

preferences:
69.6 ms | 408 KiB | 5 Q