其他三元运营商如果

时间:2014-05-03 13:57:47

标签: php ternary-operator

我想将其转换为三元运算符,以便我可以简化代码..

<?php
  $checked = $value['chkboxvalue'] == 'ok' ? 'checked' : '';
  if(isset($_POST['chckbox'])):
      $checked = 'checked';
   elseif(count($_POST) > 0):
      $checked = "";
   endif;
?>
<input type="checkbox" name="chckbox" value="ok" <?=$checked?> />

我试过这种方式。

<?php
$checked = $value['chckboxvalue'] == 'ok' ? 'checked' : '';
?>
<input type="checkbox" name="chckbox" value="ok" class="checkbox" <?=isset($_POST['chckbox']) ? 'checked' : (count($_POST) > 0 ? '' : 'checked')?> />

但它不起作用:(任何帮助?谢谢!

2 个答案:

答案 0 :(得分:1)

您的三元操作语法错误!使用这种方式:

$checked = ($value['chckboxvalue'] == 'ok') ? 'checked' : '';

如果您需要添加elseif条件,请执行以下操作:

$checked = ($value['chckboxvalue'] == 'ok') ? ((count($_POST) > 0) ? 'checked' : '') : '';

答案 1 :(得分:0)

您的count功能未正确关闭,请使用'checked'变量代替最后$checked次硬编码值,请尝试以下操作:

<input type="checkbox" name="chckbox" value="ok" class="checkbox" <?= isset($_POST['chckbox']) ? 'checked' : (count($_POST)) > 0 ? '' : $checked ?> />