当$ i达到4时,为什么它不回应?

时间:2013-06-01 11:50:22

标签: php

下面的代码意味着每4个图块创建一个新行,但事实并非如此。这是基于Bootstrap,当它开始一个新行时,瓷砖将从左边继续。这就是http://www.baboonhut.com/

目前正在发生的事情
<?php
$dir = 'resources/';
$i = 1;
$dirs = glob($dir.'*', GLOB_ONLYDIR);
array_multisort(
    array_map('authormodified', $dirs),
    SORT_NUMERIC,
    SORT_DESC,
    $dirs
);
function authormodified($dir) {
    return filemtime($dir.'/author.txt');
}

foreach($dirs as $resdir) {
    $i++;
    $resdir = str_replace($dir, '', $resdir);
    $filename = 'resources/'. $resdir .'/author.txt';
    $hit_count = @file_get_contents('resources/'. $resdir .'/count.txt');

if(!$i%4)
    echo '</div><div class="row demo-tiles">';

    echo "
<div class=\"span3\">
<div class=\"tile\">
<img src=\"resources/". $resdir ."/thumbnail.png\" class=\"img-rounded\">
<h3 class=\"tile-title\">". $resdir ."</h3>
<span class=\"label label-warning\"><i class=\"icon-calendar\"></i> " . date("jS F y", filectime($filename)); echo "</span> <span class=\"label label-info\"><i class=\"icon-download\"></i> "; echo $hit_count; echo "</span>
<p>"; echo file_get_contents('resources/'. $resdir .'/description.txt'); echo "</p>
<a class=\"btn btn-primary btn-large btn-block\" href=\"http://www.baboonhut.com/resources/" . $resdir ."/\">More Information</a>
</div>
</div>
"
;
}
?> 

1 个答案:

答案 0 :(得分:5)

这是因为operator precedence!的优先级高于%。你需要

if(!($i % 4)) {
    echo '...';
}

如果没有括号,您的条件将被评估为((!$i) % 4),对所有$i != 0

都是假的