我正在尝试根据在其中输出的字符串为表td创建一个类。
<?php echo '<td class="'?>
<?php
if ($day === 'monday')
echo 'mon';
if ($day === 'tuesday')
echo 'tues';
?>
<?php echo '">' . $day . '</td>'
然而,这导致以下结果:
<td class>monday</td>
我正在努力实现这一目标:
<td class="mon">monday</td>
<td class="tues">tuesday</td>
知道我做错了吗?
答案 0 :(得分:1)
我建议事先决定这个类,以使代码更具可读性。
<?php
$class = '';
if ($day === 'monday') {
$class = 'mon';
} else if ($day === 'tuesday') {
$class = 'tues';
}
?>
<td class="<?= $class ?>"><?= $day ?></td>
答案 1 :(得分:1)
更好的方法是使用switch语句:
$day = 'tuesday';
switch ($day) {
case 'monday':
$shortDay = 'mon';
break;
case 'tuesday':
$shortDay = 'tues';
break;
default:
$shortDay = 'invalid';
}
echo '<td class="' . $shortDay . '">' . $day . '</td>';
答案 2 :(得分:1)
将条件与标签分开 - 使其不易出错,可维护,......
<?php
$shortday = '';
if ($day === 'monday')
$shortday = 'mon';
else if($day === 'tuesday')
$shortday = 'tues';
else if...
echo "<td class=\"$shortday\">$day</td>";
?>
答案 3 :(得分:1)
我喜欢xbonez和codingbiz的答案,但是如果您访问样式表并且可以更改它,您可以重命名这些类,以便使用当天的前3个字母调用它们,然后只需:
echo ('<td class="' . substr($day, 0, 3) . '">' . $day . '</td>');
答案 4 :(得分:1)
为代码中的每个<tr>
行创建一个包含值的数组。然后循环遍历它们。这将是最干净的方法。这也是一个很好的做法,如果你有更多的预知项目值(比如可能是一个月中的几天)。
$days = array( 'mon' => 'monday',
'tue' => 'tuesday',
'wed' => 'wednesday'
);
foreach($days as $k => $v) {
echo '<td class="' . $k . '">' . $v . '</td>';
}