首页 > 解决方案 > 如何在不使用 empty() 和“&&”运算符的情况下处理空帖子(最多 20 个帖子)

问题描述

我正在接收帖子值。我想要一个关于处理空或不设置帖子值的逻辑建议。

如果其中一个收到空帖子,是否有这样的方法, $Data 数组不应该再收到值并使其为空。换句话说,我正在尝试模仿 try and catch 功能。如果任何 POST 为空,则忽略读取 POST 的其余部分并将该数组设为空

我的第二稿是否有效?

第一稿

    if(!empty(isset($_POST["SHOWSCHEDULE_SHOWTYPE"]))){
        $DATA["SHOWSCHEDULE_SHOWTYPE"] = $_POST["SHOWSCHEDULE_SHOWTYPE"];
    }

    if(!empty(isset($_POST["SHOWSCHEDULE_SHOWTITLE"]))){
        $DATA["SHOWSCHEDULE_SHOWTITLE"] = $_POST["SHOWSCHEDULE_SHOWTITLE"];
    }

    if(empty($DATA)){
        //do something
    }else{
        //do something else
    }

第二稿

try{

        if(!empty(isset($_POST["SHOWSCHEDULE_SHOWTITLE"]))){
            $DATA["SHOWTITLE"] = $_POST["SHOWSCHEDULE_SHOWTITLE"];
        }else{
            throw new Exception('POST SHOWSCHEDULE_SHOWTITLE');
        }

        if(!empty(isset($_POST["SHOWSCHEDULE_SHOWTYPE"]))){
            $DATA["SHOWTYPE"] = $_POST["SHOWSCHEDULE_SHOWTYPE"];
        }else{
            throw new Exception('POST SHOWSCHEDULE_SHOWTYPE');
        }
    } catch (Exception $e) {
        echo 'ERROR: ',  $e->getMessage(), "\n";
        unset($DATA);
    }

标签: php

解决方案


您可以将一条if语句与所有必需的 POST 参数一起使用。

if(!empty($_POST['var1']) && !empty($_POST['var2']) && !empty($_POST['var3']) && !empty($_POST['var4'])):
/*and then assign all the POST values to a $DATA array as you want.*/
$DATA['var1'] = $_POST['var1'];
$DATA['var2'] = $_POST['var2'];/* and so on..*/
endif;

推荐阅读