IF中的速记IF

时间:2017-05-18 18:08:17

标签: php html

尝试查找值是空白还是具有值。如果空白,则放置一个简单的<li>元素,如果有值,则它等于$_GET查询。我的回报目前是空白的。我正在寻找一个具有真假输出的三元数,而没有多个迭代语句。

<?php 
    $res = "<li>";
    $tmp = "";
    if(isset($_GET['search-by'])){
        $tmp = $_GET['search-by'];
    }
?>

<ul>
   <?php ($tmp != "") ? (($tmp == "fullname") ? "<li class='actBL" : "<li>") : "<li>" ?>
    <a href="?search-by=fullname"> Name</a>
    </li>
    <?php ($tmp != "") ? (($tmp == "number") ? "<li class='actBL" : "<li>") : "<li>" ?>
    <a href="?search-by=number">Number</a>
    </li>
    <?php ($tmp != "") ? (($tmp == "dep") ? "<li class='actBL" : "<li>") : "<li>" ?>
    <a href="?search-by=dep">Department</a>
    </li>
</ul>   

3 个答案:

答案 0 :(得分:1)

从它的外观来看,你也可以使用单个三元而不是链接多个三元运算符,但是这两个条件都是这样的

!empty($tmp) && $tmp == "fullname" ? "<li class='actBL'>" : "<li>"

你还没有真正做任何事情,你需要echo或使用<?=代替<?php。而你忘了关闭<li class=...>标签。我添加了empty()而不是与空字符串进行比较。

最终的PHP看起来应该是这样的

<?php echo !empty($tmp) && $tmp == "fullname" ? "<li class='actBL'>" : "<li>"; ?>

答案 1 :(得分:1)

我只是将PHP开放标记更改为echo的快捷方式。

<ul>
    <?= ($tmp != "") ? (($tmp == "fullname") ? "<li class='actBL'" : "<li>") : "<li>" ?>
    <a href="?search-by=fullname"> Name</a>
    </li>
    <?= ($tmp != "") ? (($tmp == "number") ? "<li class='actBL'" : "<li>") : "<li>" ?>
    <a href="?search-by=number">Number</a>
    </li>
    <?= ($tmp != "") ? (($tmp == "dep") ? "<li class='actBL'" : "<li>") : "<li>" ?>
    <a href="?search-by=dep">Department</a>
    </li>
</ul> 

答案 2 :(得分:0)

<ul>
  <li <?= (!empty($tmp) && $tmp == "fullname") ? " class='actBl'" : "" ?>>
    <a href="?search-by=fullname"> Name</a>
  </li>
  <li <?= (!empty($tmp) && $tmp == "number") ? " class='actBl'" : "" ?>>
    <a href="?search-by=number"> Number</a>
  </li>
  <li <?= (!empty($tmp) && $tmp == "dep") ? " class='actBl'" : "" ?>>
    <a href="?search-by=dep"> Department</a>
  </li>
</ul>