如何使用逻辑OR合并两个POST输入的判断逻辑?
如何使用逻辑OR合并两个POST输入的判断逻辑?
嗨,我来帮你理清楚这个问题~你刚才的写法之所以没得到想要的结果,是因为误用了CodeIgniter中$this->input->post()方法的参数。这个方法的第二个参数是用来控制是否开启XSS过滤的布尔值(默认是true),并不是用来传入第二个字段名的,所以那样写根本不会同时检查两个POST字段。
根据你的需求,这里分两种常见场景给你正确的写法:
场景1:只要两个字段中至少有一个有非空值
如果你的逻辑是“只要用户填了其中一个字段,就执行后续代码”,可以直接用逻辑或运算符||分别判断两个POST值:
if ($this->input->post('billed_date') || $this->input->post('branch_id')) { // 这里写你的业务逻辑 }
注意:如果用户提交了空字符串(比如输入框留空提交),$this->input->post()会返回空字符串,在逻辑判断里空字符串会被视为false,所以这种写法会忽略空值的情况。
场景2:只要两个字段中至少有一个存在(即使值为空)
如果你需要的是“不管字段值是不是空,只要这个字段被提交了就执行逻辑”,可以用两种方式实现:
方式一:直接检查POST数组的键是否存在
if (isset($_POST['billed_date']) || isset($_POST['branch_id'])) { // 只要字段在POST数据中存在,就执行逻辑 }
方式二:用CodeIgniter的方法判断字段是否存在
因为$this->input->post()在字段不存在时会返回null,所以可以通过判断是否不等于null来实现:
if ($this->input->post('billed_date') !== null || $this->input->post('branch_id') !== null) { // 只要字段存在(即使值为空),就执行逻辑 }
你可以根据自己的实际业务需求选择对应的写法哦~
备注:内容来源于stack exchange,提问作者MCIT Trends
相关产品推荐
相关产品推荐

