PHP8's Match Expression Example
Published
on Jul 14, 2021
Saw this code on a PHP 7.4 project I'm refactoring:
public function getFriendlyCertificateTypeAttribute()
{
$certificateType = '';
switch ($this->type) {
case Draft::BIRTH:
$certificateType = 'Certificate of Live Birth';
break;
case Draft::MARRIAGE:
$certificateType = 'Certificate of Marriage';
break;
case Draft::CENOMAR:
$certificateType = 'CENOMAR';
break;
case Draft::DEATH:
$certificateType = 'Certificate of Death';
break;
}
return $certificateType;
}
With PHP 8.0, it becomes much cleaner:
public function getFriendlyCertificateTypeAttribute(): string
{
return match($this->type) {
Draft::BIRTH => 'Certificate of Live Birth',
Draft::MARRIAGE => 'Certificate of Marriage',
Draft::CENOMAR => 'CENOMAR',
Draft::DEATH => 'Certificate of Death',
};
}