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', }; }