我正在做if语句来检查某个值是否在数组中
if ((!in_array($add['job_type'][$key], $jobtypes))) {
$add['job_type'][$key] = NULL;
}
我做了多个if语句来做同样的事情,但是我想做这样的事情,让我的代码更小更容易阅读:
$value = ($value == '0') ? $value = NULL : $value;
我该怎么做?
答案 0 :(得分:1)
不确定你之后会发生什么,但不会有这项工作......
$add['job_type'][$key] = (in_array($add['job_type'][$key], $jobtypes)) ? $add['job_type'][$key] : NULL;
答案 1 :(得分:1)
如果您的代码不可读,我认为if
语句的长度是您的问题。我怀疑它实际上是因为:
我做了多个if语句来做同样的事情
您可以将此功能设为:
,而不是手动指定多个if
语句
function updateJobType($key) {
if ((!in_array($add['job_type'][$key], $jobtypes))) {
$add['job_type'][$key] = NULL;
}
}
然后用你喜欢的任何参数调用它:
updateJobType('job1');
updateJobType('job2');
updateJobType('job3');
也就是说,如果没有问题的完整背景或完整的代码,就很难分辨。
答案 2 :(得分:0)
执行第一个块的最短路径是:
$add['job_type'][$key] = (in_array($add['job_type'][$key], $jobtypes)) ? : NULL;
但是如果你有很多代码与许多其他数组做同样的事情,你需要编写一个函数(或方法)。现在你将拥有:
function unsetVar(&$value, &$arr){
$value = (in_array($value, $arr)) ? : NULL;
}
然后,以这种方式调用函数:
unsetVar($add['job_type'][$key], $jobtypes);