Php 如何使用'检查必填字段;空的';在值为整数的字段中?

Php 如何使用'检查必填字段;空的';在值为整数的字段中?,php,validation,radio-button,Php,Validation,Radio Button,我正在尝试对使用empty函数的必填字段进行检查。不幸的是,empty认为0为空,我的值可能为0,单选按钮中为1。我试过使用!is_int(myvalue)但它不起作用 这是我的密码: <?php $required_fields = array('menu_name', 'position', 'visible'); foreach($required_fields as $fieldname) { if(!isset($_POST[$fieldname]

我正在尝试对使用
empty
函数的必填字段进行检查。不幸的是,
empty
认为0为空,我的值可能为0,单选按钮中为1。我试过使用
!is_int(myvalue)
但它不起作用

这是我的密码:

  <?php   $required_fields = array('menu_name', 'position', 'visible');
    foreach($required_fields as $fieldname) {
        if(!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && !is_int($_POST[$fieldname]))) {
            $errors[] = $fieldname;
        } 
    }
?>

您似乎想测试字符串,看看它是否为整数

尝试使用is\u数字


您认为空值是什么?<代码> $$POST 如果设置了值,字符串总是字符串,请尝试对空字符串进行检查。代码>!isset($\u POST[$fieldname])&&$\u POST[$fieldname]!=“”是!这很有效。我在我观看的教程中看到了我发布的代码,但它对我不起作用。我不明白你为什么同时使用empty和isset?使用
isset()
检查变量是否已定义。如果是,请使用
is\u numeric()
确保它是数字的。谢谢。这是一个视频教程,我正在看
正在使用。
if(!isset($_POST[$fieldname])  // not in the post
   || (empty($_POST[$fieldname]) && 0 != $_POST[$fieldname]) // empty but not zero
   || (int) $_POST[$fieldname] == '')) // not an integer
) {
  $errors[] = $fieldname;
}