Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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
三元运算符中GET变量的PHP isset_Php_Html - Fatal编程技术网

三元运算符中GET变量的PHP isset

三元运算符中GET变量的PHP isset,php,html,Php,Html,我有一个字段,我希望根据GET值选择适当的 因此,我使用了一个三元语句来输出一个selected属性,如下所示: <select name="data" id="data"> <option value="1" <?php echo $_GET['data'] == '1' ? 'selected' : '' ; ?>>One</option> <option value="2" <?php echo $_GET['da

我有一个
字段,我希望根据GET值选择适当的
因此,我使用了一个三元语句来输出一个
selected
属性,如下所示:

<select name="data" id="data">
    <option value="1" <?php echo $_GET['data'] == '1' ? 'selected' : '' ; ?>>One</option>
    <option value="2" <?php echo $_GET['data'] == '2' ? 'selected' : '' ; ?>>Two</option>
    <option value="3" <?php echo $_GET['data'] == '3' ? 'selected' : '' ; ?>>Three</option>
</select>
这将返回相同的错误

要简明扼要地处理这个错误并实现我的目标,最好的方法是什么?

试试这个

<option value="1" <?php echo isset($_GET['data']) ? ($_GET['data'] == '1' ? 'selected' : '') : ''; ?>>One</option>
试试这个

<option value="1" <?php echo isset($_GET['data']) ? ($_GET['data'] == '1' ? 'selected' : '') : ''; ?>>One</option>
试试看

<option value="1" <?php echo ( isset($_GET['data']) && $_GET['data'] == '1') ? 'selected' : '' ;?> >One</option>
试试看

<option value="1" <?php echo ( isset($_GET['data']) && $_GET['data'] == '1') ? 'selected' : '' ;?> >One</option>

您可以将
用于
循环,并且只有在您的需求满足时才打印出
$selected
变量。这将避免你重复你自己

<select name="data" id="data">
    <?php for ($i = 1; $i <= 3; $i++) { ?>
        <?php $selected = (isset($_GET['data']) && $_GET['data'] === $i) ? 'selected' : ''; ?>
        <option value="<?=$i?>" <?=$selected?>><?=$i?></option>
    <?php } ?>
</select>


您可以对
循环使用
,并且只有在您的需求满足时才打印出
$selected
变量。这将避免你重复你自己

<select name="data" id="data">
    <?php for ($i = 1; $i <= 3; $i++) { ?>
        <?php $selected = (isset($_GET['data']) && $_GET['data'] === $i) ? 'selected' : ''; ?>
        <option value="<?=$i?>" <?=$selected?>><?=$i?></option>
    <?php } ?>
</select>



$\u GET始终处于设置状态!您需要使用isset($\u GET['data'])@Waygood检查参数,您是对的。作为答案张贴,我将接受。你接受的答案是好的。仅用于第一次迭代,并导致重复。@harryg我仍然认为我的答案更好;)$_GET总是设定好的!您需要使用isset($\u GET['data'])@Waygood检查参数,您是对的。作为答案张贴,我将接受。你接受的答案是好的。仅用于第一次迭代,并导致重复。@harryg我仍然认为我的答案更好;)工作,但不是最有效的或可读的。嵌套的三元语句是我想要避免的,但不是最有效或可读的。嵌套三元语句是我想避免任何理由否决它的东西..不确定,虽然它可能违反了?我只讨论了条件,而不是整个选项。只是参考了三元条件@JimboWell OP需要一个完整选项列表的答案-你是说你的答案不是针对这个吗?我说他对三元条件有问题,我纠正了它…有问题吗否决它的理由…不确定,虽然它可能违反了?我只讨论了条件,而不是整个选项。只是参考了三元条件@JimboWell OP需要整个选项列表的答案-你是说你的答案不是针对这个吗?我说他对三元条件有问题,我纠正了它…这这通常是我要走的路线,但鉴于我只有3个
,我觉得构建一个数组并使用
for
循环会有点过火,会降低代码的可读性。不过答案很公平。(在本例中,我也更喜欢使用
foreach
循环,因为它不需要知道数组的长度和元素键-我的数据实际上不是数字)。我不建议使用
foreach()
的唯一原因是,您需要迭代一些东西,而您没有这些东西;)但是很酷。类似于此的防止代码重复的方法总是一个很好的进步。这通常是我要走的路线,但鉴于我只有3个
,我觉得构建一个数组并使用
for
循环将是一种过激的做法,会降低代码的可读性。不过答案很公平。(在本例中,我也更喜欢使用
foreach
循环,因为它不需要知道数组的长度和元素键-我的数据实际上不是数字)。我不建议使用
foreach()
的唯一原因是,您需要迭代一些东西,而您没有这些东西;)但是很酷。类似于此的防止代码重复的方法始终是向前迈出的一大步。