我正在嘗試在我的 PHP 專案中設定兩個引數。一是sortBy,二是orderBy..
我正在嘗試使用match()運算式為其定義最佳邏輯,該運算式可從PHP 8.0版本中獲得。
$orderBy = $params['order'] ?? 'DESC';
if (!preg_match('[ASC|DESC]', strtoupper($orderBy))) {
throw new Exception("Invalid Value for Order $orderBy allowed option ASC, DESC", 400);
}
$sortBy = match($params['sort']) {
'createdAt' => 'user.created_at',
'firstName' => 'user.first_name',
'lastName' => 'user.last_name',
'username' => 'user.username',
default => 'user.rank',
};
我的代碼按預期作業,因為我首先想設定默認值DESC,但后來發現這不是最好的方法,我想不出如何在createdAt和rank$params['order']以及其他兩種情況下默認設定為邏輯上,我希望它們打開,但仍然能夠動態設定它們。DESCASC
我想match()為orderBy添加另一個,但我想我可以在已經定義的匹配中實作這個邏輯,所以我不需要寫第二個。
有人有更好的主意嗎?謝謝
uj5u.com熱心網友回復:
將依賴sortBy于另一個變數的默認順序放在另一個變數中,并在設定時使用它$orderBy。
$defaultOrder = match($params['sort']) {
'createdAt', 'rank' => 'DESC',
default => 'ASC'
};
$orderBy = $params['order'] ?? $defaultOrder;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/522685.html
上一篇:動態比較器還是2個獨立的比較器?
