我不能再写条件了,但我不能使用while循环,因为我不知道$ _GET [" pageNumber"]的max int。我必须写下面的丑陋代码
switch ($_GET["pageNumber"]) {
case 3:
$_GET["pageNumber"] = 40;
break;
case 4:
$_GET["pageNumber"] = 60;
break;
case 5:
$_GET["pageNumber"] = 80;
break;
case 6:
$_GET["pageNumber"] = 100;
break;
default:
$_GET["pageNumber"] = 20;
}
处理此案件的更好方法是什么?
答案 0 :(得分:1)
检查是否设置了pageNumber
,如果是,请检查它是否仅包含数字。如果是这样,只需将其值乘以20,然后减去20即可得到正确的偏移量:
if (isset($_GET['pageNumber']) && ctype_digit($_GET['pageNumber']) && $_GET['pageNumber'] > 2) {
$_GET['pageNumber'] = $_GET['pageNumber'] * 20 - 20;
} else {
$_GET['pageNumber'] = 20;
}
答案 1 :(得分:0)
您可以使用switch
作为更好的选择,而不是array indexes
语句。
每次,你需要添加一个新条件,你需要附加一个带
的数组元素预定义的键和值。
<?php
$pageNumbers = array();
$pageNumbers[3] = 40;
$pageNumbers[4] = 60;
$pageNumbers[5] = 80;
$pageNumbers[6] = 100;
$pageNumber = ! empty($pageNumbers[$_GET['pageNumber']) ? $pageNumbers[$_GET['pageNumber'] : 20;
?>