0

我需要一些关于 php 中的 if 语句的帮助。我正在尝试根据我在 WordPress 中加载的页面设置一个名为 offset 的变量。这是变量:

$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)。

尽管我了解这里需要做什么,但我还是在语法上苦苦挣扎。任何帮助将不胜感激。谢谢!

4

4 回答 4

4

因为这是两种不同的情况,不能轻易地整合到一个公式中,所以使用一个if语句:

if ($paged == 0)
  $offset = 0;
else
  $offset = ($paged - 1) * 6;

您可以使用三元运算符将其写得更短,但我认为上面的if语句更具可读性:

$offset = ($paged == 0) ? 0 : ($paged - 1) * 6;
于 2012-06-18T15:14:32.547 回答
0

替代:

if($paged == 0) $paged = 1;
$offset = ($paged - 1) * 6;

或者

$offset = ($paged) ? ($paged - 1) * 6 : 0;
于 2012-06-18T15:17:41.200 回答
0

您可以使用以下一行代码

$offset = max(($paged - 1) * 6, 0);
于 2012-06-18T15:17:46.897 回答
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),但这在代码中并不重要,只是可读性...

于 2012-06-18T15:18:19.090 回答