解释php功能

时间:2010-09-21 03:17:38

标签: php

在循环访问来自数据库的一些返回数据时,我终于得到了一些工作。有人可以解释一下这件事是如何起作用的吗?我只是想明白为什么这样有效,没有别的。

我特别想知道脚本的这些部分:

($i % $rewardsPerRow == 0)
$i += 1;
($i % $rewardsPerRow == $rewardsPerRow - 1) 

这是函数

function displayAvailableRewards() {
    $sql = db_res("SELECT * FROM `aaa_rewards_list`");

    $rewardsPerRow = '3';
    $sCode = '<table>';
    if (mysql_num_rows($sql) > 0 ) {
        $i = 0;
        while ($row = mysql_fetch_array($sql)) {        
            extract($row);          
            if ($i % $rewardsPerRow == 0) {
                $sCode.= '<tr>';
            }       
            $sCode.= '<td width="200" align="center">';
            $sCode.= $row['name'].'<br/>';
            $sCode.= '<img src="http://www.huddletogether.com/projects/lightbox2/images/image-2.jpg" height="25" width="35" border="0"><br/>';
            $sCode.= $row['desc'].'<br/>Points : '. $row['point_value'];        
            $sCode.= '</td>';           
            if ($i % $rewardsPerRow == $rewardsPerRow - 1) {
               $sCode.= '</tr>';
            }               
            $i += 1;
        }    
        if ($i % $rewardsPerRow > 0) {
            $sCode.= '<td colspan="' . ($rewardsPerRow - ($i % $rewardsPerRow)) . '"></td>';
        }    
    } else {
        $sCode.= MsgBox(_t('_rewards_empty_txt'));
    }
    $sCode.= '</table>';

    $this->addCss('rewards.css');
    return $sCode;
}

2 个答案:

答案 0 :(得分:6)

%modulus。它返回余数。

if ($i % $rewardsPerRow == 0) {
     $sCode.= '<tr>';
}

检查执行i / rewardsperrow时的余数是否为0.这意味着它可以均匀地整除,并且应该移动到下一行。

$i += 1只是i = i + 1

的缩写

答案 1 :(得分:0)

这个skript构建了一个带有图像的小桌子。在8行之后,表格将被关闭。为什么8排?因为8%3 = 2($i % $rewardsPerRow)和3-1 = 2($rewardsPerRow - 1)。

此词组($i % $rewardsPerRow == $rewardsPerRow - 1)的含义与$i == 8相同,因为$rewardsPerRow是常量。