我正在尝试使用三元运算符,但结果不对。我按照手册但不知道发生了什么。控制台中的输出是混乱的。
PHP
echo '<div class="item'.(($month_number==='09' && $month_year==='2017')?' active"':"").'>';
控制台输出
<div class="item><div class=" m_page="" outer-div"="">
<div class="inner-div" style=""><div class="momo_p">
答案 0 :(得分:2)
在三元运算符后关闭class属性的双引号:
echo '<div class="item' . (($month_number==='09' && $month_year==='2017') ? ' active' : '') . '">';
答案 1 :(得分:1)
echo '<div class="item'.(($month_number==='09' && $month_year==='2017')?' active"':'"').'>';
也许?
答案 2 :(得分:1)
检查你的报价。
echo '<div class="item'.(($month_number==='10' && $month_year==='2017') ? "active" : "").'">
答案 3 :(得分:1)
使用以下代码:
<强> PHP 强>
$active = ($month_number==='09' && $month_year==='2017') ? 'active': '';
echo '<div class="item '.$active.'">';
答案 4 :(得分:1)
这是对一个班轮的重新加工,增加了两个变量来测试代码,使得真实的结果将“活动”连接到“项目”。错误的结果导致“item”与空字符串连接,如下所示:
<?php
$month_number = "08";
$month_year = "2016";
echo "<div class=\"item";
// making the ternary expression more manageable
$month_result = ($month_number === "09");
$year_result = ($month_year === "2017");
echo ($month_result && $year_result)? "active":"";
echo "\"></div>";
直播代码here
注意:如果您希望执行一个echo语句,可以按如下方式编写代码:
$str = ($month_result && $year_result)? "active":"";
echo "<div class=\"item" . $str . "\"></div>";
查看实时代码here
虽然您可以对属性使用双引号,对其他所有内容使用单引号,但更容易看到属性的转义双引号,即外部字符串的\“和双引号。