<?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