Fetching a class constant by a variable name required constant() with a string concatenation, which no tool could follow.
// before
$value = constant(Status::class . '::' . $name);
// 8.3
$value = Status::{$name};
// and the enum equivalent, which already existed
$case = Status::from($input);
// note what neither gives you: a check that $name exists.
// both throw, and the guard is still yours to write.
The syntax is better than the string concatenation mainly because it is greppable — a rename can find it, and constant() with a concatenated argument is invisible to every tool. It does not make the pattern safer, and a lookup by a name that came from user input is the same hazard it always was. In most of the four places we had it, an enum or a match was the better answer and this was a stepping stone.