好的,这是我的代码:
<?php if (!empty($projectSectorItem1Title)): ?>
<div class="project" style="overflow:hidden;">
<?php if (!empty($projectSectorItem1Image)) { ?>
<img src="<?php echo $projectSectorItem1Image; ?>" width="100%"/>
<div class="project_box_info">
<h3><a><?php echo $projectSectorItem1Title; ?></a></h3>
<p><?php echo $projectSectorItem1Description; ?></p>
</div>
<?php } else { ?>
<div class="project_box_info" style="opacity:1;">
<h3><a><?php echo $projectSectorItem1Title; ?></a></h3>
<p><?php echo $projectSectorItem1Description; ?></p>
</div>
<?php } ?>
</div>
<?php endif; ?>
此代码目前在我的.php文件中重复六次,因为我最多有六个项目。如果第一个if语句返回false,则自然不会出现任何内容。这很好。有用。但是,我注意到我的页面加载速度较慢,其中六个堆叠在一起。
有没有办法系统地循环每个数字的确切代码?唯一需要改变的是数字..即#1以上,第二#2,第三#2等。包含需要增加的数字的行是:1,3,4,6,7,11,12。所以有7个地方。我不知道怎么做!
我在同一个.php文件中也有类似的问题,但如果我知道如何做这个,我应该能够像他们所说的那样“一举两得”。非常感谢您的帮助。
为了澄清我正在尝试为其中一个评论者做的事情:我有六个框与每个框内每个项目的元数据相关联。如果填写了title变量,我们继续使用其余的代码。但是,如果没有图像,则没有“悬停”功能;相反,悬停框的不透明度已经填充(因此不透明度:1;在第二位)。
所以...检查标题&gt;如果标题存在,请继续&gt;如果是图像,则按正常方式进行,但如果不是>在没有图像的情况下正常进行,并为project_box_info
将不透明度设置为1我真的只是用英语重复这里的代码,但这就是我能做的全部!
答案 0 :(得分:1)
你会使用for循环;
<?
for (int i = 0; i < 6; i++) {
// your code here
}
这将循环上述语句6次。如果你想改变一个数字,你可以替换为i - (或i + 1);
<?
for (int i = 0; i < 3; i++) {
echo("this is cycle number $i");
}
会回来; 这是第0周期 这是第1周期 这是第2周期
答案 1 :(得分:1)
你可以使用如下的for循环
<?php for($i=1;$i<=6;$i++): ?>
<?php if (!empty(${"projectSectorItem{$i}Title"})): ?>
<div class="project" style="overflow:hidden;">
<?php if (!empty(${"projectSectorItem{$i}Image"})) { ?>
<img src="<?php echo ${"projectSectorItem{$i}Image"}; ?>" width="100%"/>
<div class="project_box_info">
<h3><a><?php echo ${"projectSectorItem{$i}Title"}; ?></a></h3>
<p><?php echo ${"projectSectorItem{$i}Description"}; ?></p>
</div>
<?php } else { ?>
<div class="project_box_info" style="opacity:1;">
<h3><a><?php echo ${"projectSectorItem{$i}Title"}; ?></a></h3>
<p><?php echo ${"projectSectorItem{$i}Description"}; ?></p>
</div>
<?php } ?>
</div>
<?php endif; ?>
<?php endfor; ?>
这是你的循环..随意问任何问题。
答案 2 :(得分:0)
我相信你正在寻找这些方面的东西。
具有设置标题,描述和图像URL的项目数组应该可以大大提高执行速度。然后,正如其他人所建议的那样,使用for
或foreach
循环遍历数组。
使用此方法可以更好地将数据与演示文稿分开,从而使整个内容更易于阅读和修改。
$items = array(
array(
'title' => 'Item 1',
'description' => 'This is the description for item1',
'image' => 'http://fake.com/images/item1.png'
),
array(
'title' => 'Item 2',
'description' => 'This is the description for item2',
'image' => 'http://fake.com/images/item2.png'
),
array(
'title' => 'Item 3',
'description' => 'This is the description for item3'
),
array(
'title' => 'Item 4',
'description' => 'This is the description for item4',
'image' => 'http://fake.com/images/item4.png'
),
array(
'title' => 'Item 5',
'description' => 'This is the description for item5',
'image' => 'http://fake.com/images/item5.png'
),
array(
'title' => 'Item 6',
'description' => 'This is the description for item6'
)
)
foreach ($items as $item) {
echo '
<div class="project">
', (isset($item['image']) ? '<img src=' . $item['image'] . '" alt="" />' : ''), '
<div class="project_box_info">
<h3><a>', $item['title'], '"</a></h3>
<p>', $item['description'], '"</p>
</div>
</div>';
}
为了便于阅读,我在这里省略了你的内联样式。真的,无论如何他们应该在外部样式表中。