我可以将PHP标记放在函数的echo语句中吗?

时间:2014-04-03 04:22:32

标签: php function checkbox echo

function addBox($letter) {
    echo "<input type=\"checkbox\" name=$letter <?php if(isset($_POST[$letter])) echo "checked"; ?> /> ".$letter." &nbsp&nbsp&nbsp&nbsp";
}

我正在尝试创建一个功能,即使在提交表单后也会使复选框保持检查状态。该行在html中工作正常,但在PHP中不起作用。我假设在echo语句中遇到PHP标记有问题。但即使我拿出那些标签,该功能仍然无效。有谁知道如何将该功能合并到函数的echo语句中?

2 个答案:

答案 0 :(得分:1)

function addBox($letter) {
    $chkBox="";
    $chkBox.="<input type='checkbox' ";
    $chkBox.="name='".$letter."' ";
    $chkBox.=isset($_POST[$letter])?" checked='checked' ":"";
    $chkBox.="/>";
    echo $chkBox;
}

答案 1 :(得分:1)

我建议在功能中使用echo 永远。它只会使调试变得更加困难。我还建议删除对$_POST的依赖。相反,尝试这样的事情......

function addBox($letter, $checked) {
    $safeLetter = htmlspecialchars($letter);
    return sprintf('<input type="checkbox" name="%s"%s>%s &nbsp;&nbsp;&nbsp;&nbsp;',
        $safeLetter, (bool) $checked ? ' checked' : '', $safeLetter);
}

然后像这样称呼它

echo addBox($letter, isset($_POST[$letter]));