好的,这有点难以解释,但基本上我写了一个PHP函数,打印一个标签,但需要一些逻辑。这是我到目前为止所拥有的
function print_a($element_name, $completed_system, $category_name){
// hw_bottom
// hw_top
// hw_center
$elements = array("hardware", "software", "payment", "service", "optional");
$last_category = last_category($completed_system);
if($last_category == $category_name){
echo "<a class=\"{$element_name} hw_center lf\"></a>";
}else{
echo "<a class=\"{$element_name} hw_bottom lf\"></a>";
}
}
这就是我怎么称呼它
print_a("hw-tab", $completed_system, 'hardware');
print_a("sw-tab", $completed_system, 'software');
print_a("pp-tab", $completed_system, 'payment');
print_a("serv-tab", $completed_system, 'service');
print_a("ou-tab", $completed_system, 'optional');
一切似乎都没问题,但我的逻辑有点偏......基本上我需要的是我打印三个类hw_bottom,hw_center或hw_top中的任何一个,我的逻辑现在的工作方式是if if if if条件得到满足我打印hw_center ...那是正确的...我需要的是,如果if条件匹配任何东西后硬件我需要将所有前一个转到hw_top所以例如:
如果if条件在付款时匹配,那么这就是我需要的
<a class="hw-tab hw_top lf"></a>
<a class="sw-tab hw_top lf"></a>
<a class="pp-tab hw_center lf"></a>
<a class="serv-tab hw_bottom lf"></a>
<a class="ou-tab hw_bottom lf"></a>
正如你可以看到付款后所有的都是hw_bottom而之前的所有都是hw_top而且它是hw_center ....我知道这很难解释......如果有人需要更多信息让ms知道
更新
这是我在审核完所有答案后想出的解决方案
function print_a($completed_system){
$topClass = true;
$elements = array("hw-tab" => "hardware", "sw-tab" => "software", "pp-tab" => "payment", "serv-tab" => "service", "ou-tab" => "optional");
$last_category = last_category($completed_system);
foreach ($elements as $key => $element) {
if($last_category == $element){
echo "<a class=\"{$key} hw_center lf\"></a>";
$topClass = false;
} else {
if ($topClass) {
echo "<a class=\"{$key} hw_top lf\"></a>";
} else {
echo "<a class=\"{$key} hw_bottom lf\"></a>";
}
}
}
}
答案 0 :(得分:1)
我不完全理解你要做的是什么,但是如果满足要求,你不能简单地让函数返回true / false,然后将它作为另一个参数添加到下一个函数调用中。
问题是只有在条件评估为真的那个项目之后的唯一项目才会受到影响。您只需使用或解决此问题:
$myBool = false;
$myBool = $myBool || print_a("hw-tab", $completed_system, 'hardware', $myBool);
etc..
然后如果$ myBool为true,你将打印hw_bottom,如果为false,你将打印hw_top,时间是函数更改true和false之间的状态你打印hw_center。
答案 1 :(得分:1)
也许这段代码可以帮助你(如果我理解问题):
<?php
$topClass = true;
$elements = array("hardware", "software", "payment", "service", "optional");
foreach ($elements as $index => $element) {
if (floor(count($elements) / 2) == $index) {
echo "<a class=\"{$element} hw_center lf\"></a>";
$topClass = false;
} else {
if ($topClass) {
echo "<a class=\"{$element} hw_top lf\"></a>";
} else {
echo "<a class=\"{$element} hw_bottom lf\"></a>";
}
}
}
编辑:在您解释所需内容后更新。