PHP if语句-我觉得自己像个白痴

PHP if语句-我觉得自己像个白痴,php,if-statement,Php,If Statement,我有: <input type="radio" id="flag" name="flag" value="0" <?php if($row['flag_active'] === 0){ echo 'checked="checked"';} ?>checked="checked" /><label for="flag">Inactive</label> <input type="radio" id="flag1" name="flag" va

我有:

<input type="radio" id="flag" name="flag" value="0" <?php if($row['flag_active'] === 0){ echo  'checked="checked"';} ?>checked="checked" /><label for="flag">Inactive</label>
<input type="radio" id="flag1" name="flag" value="1" <?php if($row['flag_active'] === 1){ echo  'checked="checked"';} ?>checked="checked" /><label for="flag1">Active</label>

提前感谢您的帮助。

嗯,无论如何,您的
checked=“checked”
已超出您的
范围。删除以下内容:

<input type="radio" id="flag" name="flag" value="0" <?php if($row['flag_active'] === 0){ echo  'checked="checked"';} ?> /><label for="flag">Inactive</label>
<input type="radio" id="flag1" name="flag" value="1" <?php if($row['flag_active'] === 1){ echo  'checked="checked"';} ?> /><label for="flag1">Active</label>
/>激活

php代码后面有一个checked=“checked”。在代码中,每个输入都会将checked属性设置为checked。

代码有两个基本问题:

1) 。您在PHP子句之外设置了
checked='checked'
,因此最后一项将始终被选中

2) 。它的可读性和可维护性非常差。您可以使用ternaries以可读性更强的形式编写:

<input type="radio" id="inactive_flag" name="inactive_flag" value="0" <?= ($row['flag_active'] == 0) ? "checked='checked'" : null; ?> />
<label for="inactive_flag">Inactive</label>
<input type="radio" id="active_flag" name="active_flag" value="1" <?= ($row['flag_active'] == 1) ? "checked='checked'" : null; ?> />
<label for="active_flag">Active</label>

两者都有
checked=“checked”
在PHP之外的任何地方,您在if语句中输出
checked=“checked”
,以及直接在它们之后输出。if语句是否为真并不重要,您仍然在输出它。您的无线电输入总是都经过检查,请查看php脚本后面的checked=“checked”。您的
if
语句与您的问题无关,而不是第三个与您的问题相关的语句,在您的案例中,第三个语句是错误的。你只需要删除HTML代码中if语句之后的第二个
checked=“checked”
。我只想指出,没有理由否决这个问题,我遗漏了一些简单的东西,这就是为什么我在标题中说我觉得自己像个白痴,承认我肯定遗漏了一些简单的东西。我不知道有哪位编码员把同一行代码读了100遍,只需要第二双眼睛就能找到错误。不幸的是,我办公室里的每个人都对此一窍不通,因为他们对html甚至都没有基本的了解。感谢您在可读性方面的投入,但我认为您发布的内容更糟糕,因为标签似乎是指下面的内容。在这种情况下,为了避免混淆,我特意将我的标签插入其中。@Jack可以包含上面的标签。通常在编程中,我们使用最多90个字符的软行,超过90个字符,将行拆分以使其更具可读性。如果我在一行中读不懂,我会把它分开,除非我认为这会让它更混乱。
<input type="radio" id="inactive_flag" name="inactive_flag" value="0" <?= ($row['flag_active'] == 0) ? "checked='checked'" : null; ?> />
<label for="inactive_flag">Inactive</label>
<input type="radio" id="active_flag" name="active_flag" value="1" <?= ($row['flag_active'] == 1) ? "checked='checked'" : null; ?> />
<label for="active_flag">Active</label>