if 语句 (php) 的语法问题


Syntax Problems of if Statement (php)

我需要一点关于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),但这在代码中并不重要,只是可读性......