Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP编写if语句的更好方法是什么_Php - Fatal编程技术网

使用PHP编写if语句的更好方法是什么

使用PHP编写if语句的更好方法是什么,php,Php,我有一个下拉选项,如果某个值等于搜索变量,我需要回显所选的 现在我正在使用PHP if语句来决定这一点,但我想通过使用一种不占用代码中太多行的方法来稍微清理一下 下面是我的php if语句的一个示例: <option value="antiques" <?php if($_POST['category'] == 'antiques'){echo 'selected';}?>>Antiques</option> 一种简单的方法是使用PHP三元运算符(此处提供更

我有一个下拉选项,如果某个值等于搜索变量,我需要回显所选的

现在我正在使用PHP if语句来决定这一点,但我想通过使用一种不占用代码中太多行的方法来稍微清理一下

下面是我的php if语句的一个示例:

<option value="antiques" <?php if($_POST['category'] == 'antiques'){echo 'selected';}?>>Antiques</option>

一种简单的方法是使用PHP三元运算符(此处提供更多信息:[向下滚动到有关浮动的大警告下方])


创建一个函数,并根据需要多次使用它:

function abc($postData, $thisData) { if($postData == $thisData) { echo ' selected';} }
<?php abc($_POST['category'], 'antiques'); ?>
现在,请执行以下操作:

<option value="antiques" <?php abc($_POST['category'], 'antiques'); ?> >Antiques</option>

我喜欢在代码的一个区域中完成所有逻辑处理

一种干净的方法是创建一个包含所有类别的数组。然后填写与所选类别匹配的表格。在每个菜单选项中,打印出与选项名称匹配的数组键的内容

<?php
$selected=array(
                   'antiques'=>'',
                   'horses'=>'',
                   'umbrellas'=>''
                    );

$selected[$_POST['category']]='selected';

?>

<option value="antiques" <?php echo $selected['antiques'];?>>Antiques</option>


更好的方法?在html中,不。更短的方式,可能是。快速思考:您可以将所有选项添加到一个数组中,然后在其中循环。然后,您在代码中只得到了您提到的一行(如果所有选项都属于同一个
。使用模板引擎怎么样?现在就尝试一下,谢谢@Justin TurnerThanks!这非常有效!您还可以使用类别数组将其打印到您的菜单中,因为示例中的单词antiques重复了三次。
<option value="antiques" <?php abc($_POST['category'], 'antiques'); ?> >Antiques</option>
function abc($postData, $thisData) {
    echo '<option value="'.$thisData.'">'.($_POST['category'] == 'antiques')?' selected':''.$thisData.'</option>';
}
<?php abc($_POST['category'], 'antiques'); ?>
<?php
$selected=array(
                   'antiques'=>'',
                   'horses'=>'',
                   'umbrellas'=>''
                    );

$selected[$_POST['category']]='selected';

?>

<option value="antiques" <?php echo $selected['antiques'];?>>Antiques</option>