<?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));
}
preferences:
24.89 ms | 404 KiB | 5 Q