我正在执行if语句来检查某个值是否在数组
if ((!in_array($add['job_type'][$key], $jobtypes))) {
$add['job_type'][$key] = NULL;
}
我做了多个if语句来做同样的事情,但我想做这样的事情,让我的代码更小,更容易阅读:
$value = ($value == '0') ? $value = NULL : $value;
我该怎么做呢?
我不认为长度的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');
也就是说,如果没有完整的问题上下文或完整的代码,就很难判断。
不确定你到底想要什么,但这不会工作吗…
$add['job_type'][$key] = (in_array($add['job_type'][$key], $jobtypes)) ? $add['job_type'][$key] : NULL;
执行第一个block的最短方法是:
$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);