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

标签 php

<分区>

我有一个选项下拉列表,如果值等于搜索变量,我需要在其中回显 selected

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

这是我的 php if 语句的示例:

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

虽然这行得通,但它只占用了我的代码相当多的空间,因为我有将近 100 个这样的选择选项。

有没有更好的方法来检查一个post变量是否等于这个选项的值然后回显selected

最佳答案

执行此操作的一种简单方法是使用 PHP 三元运算符(更多信息可在此处获得:http://php.net/manual/en/language.operators.comparison.php [向下滚动到关于 float 的大警告下方])

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

在这种情况下,它并没有节省多少空间,但在我看来,这是一种用 HTML 内联编写它的更简洁的方法。

使用来自@crazymoin 的代码进行编辑

将它移动到函数中的想法很棒,也让它变得简单。

我会像这样修改函数:

function abc($post,$value,$label){
    echo '<option value="'.$value.'"'.($_POST[$post] == $value)?' selected':''.'>'.$label.'</option>';
}

然后你可以这样调用它:

<?php abc('category','antiques','Antiques'); ?>

请注意,如果由于某种原因 $_POST 数组中的指定索引不存在,PHP 将抛出一些关于未定义索引的警告。您可能还想扩展函数以使用 isset() 等进行一些检查。

关于php - 使用 PHP 编写 if 语句的更好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27997218/

相关文章:

php - 如何在几秒钟后淡出 Alert::widget?

javascript - blueimp 插件在每次后续上传时上传多个文件

php - php4.4 -> php7 之间已弃用的函数列表

php - Symfony DQuery 生成器 : Magic method doesn't select the right table

php - 在ElasticSearch中搜索

PHP:从数组中获取数据

表单提交时调用 Javascript 函数

php - 在 PHP 代码中使用正则表达式

php - 如何从我的上传路径文件夹的数据库中获取我的图像?

javascript - 使用ajax清空(val)html字段并在数据库中的该字段中输入下一个值