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


PHP if statements - I feel like an idiot

我有:

<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>

但是,第二个单选按钮始终处于选中状态。我已经回显了$row['flag_active'],它等于0。

此外,我也尝试过:

if($row['flag_active'] === 0)
if($row['flag_active'] == 0)
if($row['flag_active'] = 0)
if($row['flag_active'] !== 1)
if($row['flag_active'] != 1)

提前感谢您的帮助。

不管怎样,if之外还有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>