我需要一点关于php中的if语句的帮助。我正在尝试根据我在WordPress中加载的页面设置一个名为偏移量的变量。这是变量:
$offset = ($paged * 6);
它的作用是加载第一页,即:
http://example.com/blog
因此,$offset设置为 0,因为$paged指的是 URL 上的附加数字。例如,第二页是:
http://example.com/blog/2/
这使得$offset设置为 12。问题是,我需要第二页将$offset定义为 6,第三页将$offset定义为 12,依此类推。我尝试使用:
$offset = ($paged * 6 - 6)
除了第一页之外,它有效。在第一页上,它将$offset定义为 -6。所以,我想创建一个 if 语句,说如果$paged等于 0,则$offset等于 0,否则$offset等于 ($paged * 6 - 6)。
我在语法上挣扎,即使我知道这里需要做什么。任何帮助将不胜感激。谢谢!
由于这是两种不同的情况,无法轻松集成到单个公式中,因此请使用if
语句:
if ($paged == 0)
$offset = 0;
else
$offset = ($paged - 1) * 6;
您可以使用三元运算符将其写得更短,但我认为上面的if
语句更具可读性:
$offset = ($paged == 0) ? 0 : ($paged - 1) * 6;
另一种选择:
if($paged == 0) $paged = 1;
$offset = ($paged - 1) * 6;
或
$offset = ($paged) ? ($paged - 1) * 6 : 0;
您可以使用以下一行代码
$offset = max(($paged - 1) * 6, 0);
您可以使用
:$offset = max(0, $paged * 6 -6);
.它取最大值 0 和其他值。如果另一个值为负数,则结果为 0。
现在,使用 if 语句,您将如何做到这一点:
$offset = $paged * 6 - 6;
if ($offset < 0) {
$offset = 0;
}
或:
if ($paged == 0) {
$offset = 0;
} else {
$offset = $paged * 6 - 6;
}
对于这个简单的情况,您可能希望使用三元运算符:
$offset = ($paged == 0)? 0: ($paged * 6 - 6);
(与上述完全相同)
注意:您可以替换 6*a-6 = 6*(a-1),但这在代码中并不重要,只是可读性......