使用三元运算符php放入内联样式

时间:2017-11-16 09:54:59

标签: php html html-table

我正在尝试根据php变量的值添加css内联样式。 我尝试使用三元运算符,并且我将变量值转换为float。但是css没有按预期应用。

       <tbody>
        <?php
        $totalLeaveTaken = 0.00;
        $totalBalance = 0.00;
            foreach ($GetEmployeeLeaveBalance as $member):
                $totalLeaveTaken += $member['usedDays'];
                $totalBalance += $member['Remaining_Leave_Days'];
                $leaveBalance = floatval($member['Remaining_Leave_Days']);
            ?>
            <tr>
                <td><?php echo $member['title']; ?></td>
                <td><?php echo $member['maxDays']; ?></td>
                <td><?php echo $member['usedDays']; ?></td>
                <!-- <td><?php echo gettype($leaveBalance);?></td> -->
                <td
                <?php 
                ($leaveBalance < 0) ? 
                "style='background-color:red;'" : "style='background-color:green;'"
                ?>
                >
                <?php echo $member['Remaining_Leave_Days']; ?>    
                </td>
            </tr>
        <?php endforeach; ?>
        <tr>
            <td></td>
            <td></td>
            <td style="background-color: #33CCFF; font-weight: bold;">Total: <?php echo number_format($totalLeaveTaken, 2); ?></td>
            <td style="background-color: #33CCFF; font-weight: bold;">Total: <?php echo 
            number_format($totalBalance, 2); ?></td>
        </tr>
        </tbody>

但简单的内联样式工作正常。

2 个答案:

答案 0 :(得分:1)

您在条件之前缺少echo命令。 基本上,如果条件返回true或false,则返回语句,而不必回显语句。

<?php
echo ($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'"
?>

旁注,更好的做法:

由于两个返回的字符串都是样式,重复它没有意义(开发人员很懒:))。所以你可以简单地写一下:

<td style='background-color: <?php echo ($leaveBalance < 0) ? "red" : "green" ?>'>

答案 1 :(得分:1)

<?php 
    ($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'"
?>

<?php 
    echo (($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'");
?>

<?= (($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'"); ?>