单选按钮上的三元运算符

时间:2015-03-13 06:02:04

标签: php html if-statement ternary-operator

我是PHP / Programming的新手。我无法理解用于单选按钮的这种三元运算符条件。任何人都可以告诉我如何将其转换为简单的if else类型条件。?

<?php if($_POST['midnightdelivery'])
    {
        echo ($_POST['midnightdelivery'] == 0)?'checked="checked"':'';
    }
else
    { 
        echo 'checked="checked"'; 
    }
?>

我检查了这个This以了解三元运算符。但在我的情况下我无法理解同一个算子。

更新:也有人可以给我一个if-elseif -else到三元运营商的例子吗?

2 个答案:

答案 0 :(得分:1)

我认为下面的代码将帮助您理解三元运算符......

下面的代码是针对current_file.php使用if elseif else .....

    <?php
    if(isset($_POST["submit"]))
    {
        $gender = $_POST['gender'];
        if($gender == male)
        {
            $selected_radio_button = "checked='checked'";
        }
        elseif($gender == female)
        {
            $selected_radio_button = "checked='checked'";
        }
        else
        {
            $selected_radio_button = "";
        }
        ?>
        <form action="#">
            <input type='radio' name='gender' value='male' <?php echo $selected_radio_button; ?>> Male
            <input type='radio' name='gender' value='female' <?php echo $selected_radio_button; ?>> Female
            <input type='submit' name='submit' value='Submit'>
        </form>
        <?php
    }
    else
    {
    ?>
    <form name='rform' method='post' action='current_file.php'>
         <input type='radio' name='gender' value='male'> Male
         <input type='radio' name='gender' value='female'> Female
         <input type='submit' name='submit' value='Submit'>
    </form>
<?php
    }
?>

现在,下面的代码是使用三元运算符的current_file.php ......

    <?php
    if(isset($_POST["submit"]))
    {
        $gender = $_POST['gender'];
        ($gender == "male" || $gender == "female") ? $selected_radio_button = "checked='checked'" : $selected_radio_button = "";
        ?>
        <form action="#">
            <input type='radio' name='gender' value='male' <?php echo $selected_radio_button; ?>> Male
            <input type='radio' name='gender' value='female' <?php echo $selected_radio_button; ?>> Female
            <input type='submit' name='submit' value='Submit'>
        </form>
        <?php
    }
    else
    {
    ?>
    <form name='rform' method='post' action='current_file.php'>
         <input type='radio' name='gender' value='male'> Male
         <input type='radio' name='gender' value='female'> Female
         <input type='submit' name='submit' value='Submit'>
    </form>
<?php
    }
?>

两台服务器的结果相同,但三元运算符使用较少的代码行.... 希望这会对你有所帮助......

答案 1 :(得分:0)

单选按钮$_POST['midnightdelivery']将传递其值,而不是1或0表示已选中或未选中。

您可以按如下方式设置单选按钮,以获得1或0表示已选中且未选中。

<input name="midnightdelivery" type="radio" value="1" checked="checked" />
<input name="midnightdelivery" type="radio" value="0"  />

你可以使用

echo ($_POST['midnightdelivery'] == '1')?'checked="checked"':'';