if语句的语法问题(php)

时间:2012-06-18 15:12:03

标签: php syntax if-statement

我需要一些关于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 个答案:

答案 0 :(得分:4)

因为这是两种不能轻易集成到单个公式中的情况,请使用if语句:

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

您可以使用ternary operator来缩短编写时间,但我认为上面的if语句更具可读性:

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

答案 1 :(得分:0)

替代方案:

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

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

答案 2 :(得分:0)

您可以使用以下一行代码

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

答案 3 :(得分:0)

您可以使用:$offset = max(0, $paged * 6 -6);。最大值为0,另一个值为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),但它在代码中并不重要,只是可读性......