如何关联php函数中的上一个值?
好吧,这有点难以解释,但基本上我编写了一个PHP函数来打印a标记,但需要一些逻辑。这是我到目前为止所拥有的如何关联php函数中的上一个值?,php,function,if-statement,Php,Function,If Statement,好吧,这有点难以解释,但基本上我编写了一个PHP函数来打印a标记,但需要一些逻辑。这是我到目前为止所拥有的 function print_a($element_name, $completed_system, $category_name){ // hw_bottom // hw_top // hw_center $elements = array("hardware", "software", "payment", "service", "optional");
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>";
}
}
看起来一切正常,但我的逻辑有点偏离…基本上我需要的是打印三个类中的任何一个hw_bottom,hw_center,或者hw_top,我的逻辑现在的工作方式是,如果满足if条件,我打印hw_center…这是正确的…但我需要的是,如果if条件在硬件之后匹配,我需要将所有之前的条件都转到hw_top,例如:
如果条件匹配付款,那么这就是我需要的
<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_底部,付款前所有的都是hw_顶部,这是hw_中心……我知道这很难解释……如果有人需要更多信息,请告诉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>";
}
}
}
}
功能打印a($completed\u系统){
$topClass=true;
$elements=数组(“硬件选项卡”=>“硬件”、“软件选项卡”=>“软件”、“pp选项卡”=>“付款”、“服务选项卡”=>“服务”、“ou选项卡”=>“可选”);
$last_category=last_category($completed_system);
foreach($key=>$element形式的元素){
如果($last_category==$element){
回声“;
$topClass=false;
}否则{
如果($topClass){
回声“;
}否则{
回声“;
}
}
}
}
我不完全理解您试图做什么,但如果满足要求,您不能简单地让函数返回true/false,然后将其作为另一个参数添加到下一个函数调用中
问题是,只有条件计算结果为true的项之后的项才会受到影响。您只需使用或即可解决此问题:
$myBool = false;
$myBool = $myBool || print_a("hw-tab", $completed_system, 'hardware', $myBool);
etc..
然后,如果$myBool为true,您将打印hw_bottom,如果为false,您将打印hw_top,函数在true和false之间更改状态的时间,您将打印hw_center。也许此代码可以帮助您(如果我理解问题):
这是我的$completed_systems数组是的,这正是我所需要的@Dusanthanks….我会更新我的答案,让你看看我的答案…你的答案已经出来了….谢谢
$myBool = false;
$myBool = $myBool || print_a("hw-tab", $completed_system, 'hardware', $myBool);
etc..
<?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>";
}
}
}