-3

その中に出力される文字列に基づいて、テーブル 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>

私が間違っていることは何ですか?

4

5 に答える 5

1

私はxbonezとcodingbizの回答が好きですが、スタイルシートにアクセスして変更できる場合は、クラスの名前を変更して、その日の最初の3文字を使用して呼び出されるようにし、次のようにすることができます:

echo ('<td class="' . substr($day, 0, 3) . '">' . $day . '</td>');
于 2012-11-01T01:55:29.957 に答える
1

コード内の各行の値を含む配列を<tr>作成します。次に、それらをループします。これが最もクリーンな方法です。これは、既知のアイテムの値がもっとたくさんある場合 (おそらく月の日など) にも良い方法です。

$days = array( 'mon' => 'monday',
               'tue' => 'tuesday',
               'wed' => 'wednesday'
             );

foreach($days as $k => $v) {
    echo '<td class="' . $k . '">' . $v . '</td>';
}
于 2012-11-01T01:55:52.653 に答える
1

コードを読みやすくするために、事前にクラスを決定することをお勧めします。

<?php
    $class = '';

    if ($day === 'monday') {
        $class = 'mon';
    } else if ($day === 'tuesday') {
        $class = 'tues';
    }
?>

<td class="<?= $class ?>"><?= $day ?></td>
于 2012-11-01T01:42:51.687 に答える
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>';
于 2012-11-01T01:43:29.767 に答える
1

条件をタグから分離する - エラーが発生しにくく、保守しやすくなります...

<?php 
   $shortday = '';
   if ($day === 'monday') 
      $shortday = 'mon';
   else if($day === 'tuesday')
      $shortday = 'tues';
   else if...

   echo "<td class=\"$shortday\">$day</td>";

?>
于 2012-11-01T01:44:52.457 に答える