Embrace match() Statements for Simplicity!
Images are great sometimes.
The comparison of the classic if/else if/else statements and the switch statement to the new match expression introduced in PHP 8.0.
Here is a brief explanation of each:
Classic IF statements
These statements use the if, elseif, and else keywords to check for different conditions and execute the corresponding code. For example:
if ($task-succeeded()) {
return $this->addSucceededTask($task);
} elseif ($task-wasSkipped()) {
return $this->addSkippedTask($task);
} else {
return $this->addFailedTask($task);
}
Switch statements
Switch statements use the switch and case keywords to check for a single condition and execute the corresponding code. For example:
switch (true) {
case $task-succeeded():
return $this->addSucceededTask($task);
case $task-wasSkipped():
return $this->addSkippedTask($task);
default:
return $this->addFailedTask($task);
}
Match expressions
Match expressions are a new way to check for different conditions and execute the corresponding code. They are more concise and easier to read than classic if/else if/else statements and switch statements. For example:
return match (true) {
$task-succeeded() => $this->addSucceededTask($task),
$task-wasSkipped() => $this->addSkippedTask($task),
default => $this->addFailedTask($task),
};
Advantages of match expressions:
- Match expressions are more concise and easier to read than classic
if/else if/elsestatements and switch statements. - Match expressions are more expressive and can be used to match complex expressions.
- Match expressions are exhaustive, which means that they must handle all possible cases. This helps to prevent errors.
Overall, match expressions are a more modern and efficient way to check for different conditions and execute the corresponding code.
Which one should you use?
If you are writing new code, I recommend using match expressions. They are more concise, expressive, and exhaustive than classic if/else if/else statements and switch statements.
If you are working on existing code, you can gradually migrate to match expressions as you have the opportunity.
/
1 Comments
Indeed a great observation of the operators.
Add a comment