在不使用太多新的链接变量和if语句的情况下,编写此代码的更好方法是什么?机箱开关在这里可以工作吗?我能否将每个变量都增加为带有+1的新变量,而不是每次都有新变量?试图提出更短的清洁代码。您将不得不忽略一些变量,因为其中大部分是来自更大的代码,这只是我正在研究的一小部分。这只会为页面上不同名称的背景设置样式。
foreach ($value->alldetails as $details) {
$name = $details->name;
$title = $value->title;
$link1 = '<div style="background-color:#f4eb12;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
$link2 = '<div style="background-color:#f7951d;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
$link3 = '<div style="background-color:#f7951d;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
$link4 = '<div style="background-color:#00ffff;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
$link5 = '<div style="background-color:#6a52a2;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
$link6 = '<div style="background-color:#44b649;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
$link7 = '<div style="background-color:#e22627;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
$link8 = '<div style="background-color:#1670b8;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
$link9 = '<div style="background-color:#1670b8;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
$link10 = '<div style="background-color:#1670b8;"><a href="./setup/'.$id.'" target="_blank">'.$name.' '.$a_time.'</a></div>';
if (!$details->soldout && $title === "Name1 1:00 PM") {
$cellLink .= $link1;
}
if (!$details->soldout && $title === "Name 10:00 AM") {
$cellLink .= $link2;
}
if (!$details->soldout && $title === "Name 2:30 PM") {
$cellLink .= $link3;
}
if (!$details->soldout && $title === "Name2 1:00 PM") {
$cellLink .= $link4;
}
if (!$details->soldout && $title === "Name 6:00 PM") {
$cellLink .= $link5;
}
if (!$details->soldout && $title === "Name1 10:00 AM") {
$cellLink .= $link6;
}
if (!$details->soldout && $title === "Name2 10:00 AM") {
$cellLink .= $link7;
}
if (!$details->soldout && $title === "Name 3:00 PM") {
$cellLink .= $link8;
}
if (!$details->soldout && $title === "Name 5:00 PM") {
$cellLink .= $link9;
}
if (!$details->soldout && $title === "Name 7:00 PM") {
$cellLink .= $link10;
}else{
}
这些链接中所有更改的是颜色。因此,只需计算颜色并将其添加到一个简单的链接变量中,至少可以使代码更易于阅读。
这似乎也适合使用开关而不是所有的IF
foreach ($value->alldetails as $details) {
$name = $details->name;
$title = $value->title;
if (!$details->soldout) {
switch ($value->title) {
case: "Name1 1:00 PM"
$clr = '#f4eb12';
break;
case: "Name 10:00 AM"
$clr = '#f7951d';
break;
. . . etc etc
default:
$clr = 'Set a default here';
} // end switch
$link = "<div style='background-color:$clr;'>
<a href='./setup/$id' target='_blank'>$name $a_time</a>
</div>";
// an echo I assume
} // endif
} // endforeach