<?php declare(strict_types=1); ini_set('display_errors', 'On'); ini_set('error_reporting', E_ALL); // This function has 6 returns, which is more than the 3 allowed. function func1(bool $c1, bool $c2, bool $c3, bool $c4, bool $c5): bool { if ($c1) { echo 'Error: c1'; return false; } if ($c2) { echo 'Error: c2'; return false; } if ($c3) { echo 'Error: c3'; return false; } if ($c4) { echo 'Error: c4'; return false; } if ($c5) { echo 'Error: c5'; return false; } echo ''; return true; } function func2(bool $c1, bool $c2, bool $c3, bool $c4, bool $c5): bool { $ok = true; $msg = ''; if ($c1) { $msg = 'Error: c1'; $ok = false; } elseif ($c2) { $msg = 'Error: c2'; $ok = false; } elseif ($c3) { $msg = 'Error: c3'; $ok = false; } elseif ($c4) { $msg = 'Error: c4'; $ok = false; } elseif ($c5) { $msg = 'Error: c5'; $ok = false; } echo $msg; return $ok; } $c1 = $_GET['c1'] ?? false; $c2 = $_GET['c2'] ?? false; $c3 = $_GET['c3'] ?? false; $c4 = $_GET['c4'] ?? false; $c5 = $_GET['c5'] ?? false; $ok1 = func1($c1, $c2, $c3, $c4, $c5); $ok2 = func2($c1, $c2, $c3, $c4, $c5); //========== 说明 =====// //1、func2()既实现了单一出口,又避免了多层if-else嵌套使代码变得难以维护的问题。
Copyright © 2025 码农人生. All Rights Reserved