我正在我的代码中创建函数来清理它,其中一个用于计算分页的偏移量。
功能是
function pageOffSet($page, $count, $resultsPerPage) {
// WORK OUT HIGHEST PAGE NUMBER
$pageCount = ceil($count / $resultsPerPage);
// IF GET PAGE VARIABLE IS HIGHER THAN MAX PAGE POSSIBLE
if (isset($page) && $page > $pageCount) {
$page = $pageCount;
// IF VALID GET PAGE VARIABLE
} elseif (isset($page) && is_numeric($page) && $page > 1) {
$page = $page;
// IF PAGE GET VARIABLE NOT SET
} else {
$page = 1;
}
// OFFSET FOR POST RESULTS
$offSet = ($page - 1) * $resultsPerPage;
return array('offSet' => $offSet, 'resultsPerPage' => $resultsPerPage);
}
我称之为,
$page = pageOffSet($_GET['page'], $count, 15);
除了$_GET['page']
可以设置或取消设置吗?我检查函数内部是否设置,但是可以这样做吗?我没有错,但我只想查一下?
答案 0 :(得分:4)
当您访问$_GET['page']
时,PHP会抛出未设置索引的通知。如果您没有看到该通知,请调整ERROR_REPORTING
。您应始终在开发环境中显示通知。
使用类似的东西来检查变量是否已设置(并转换为int):
$pageNumber = isset($_GET['page']) ? (int) $_GET['page'] : 0;
$page = pageOffSet($pageNumber, $count, 15);
答案 1 :(得分:1)
不会发生错误,但可能会生成警告,具体取决于您的错误报告设置。但是,更好的方法可能是使用默认参数:
function pageOffSet($count, $resultsPerPage, $page = NULL) { ... }
然后检查$page
是否存在,请使用:
if ($page)
或者检查它是否存在,请使用:
if (!$page)
这样,您可以使用前两个参数而无需提供最后一个参数;或者你可以提供这三个。要使用$page
,请检查它是否为NULL
并相应地使用它。