我试图缩短我的代码,所以我来缩短以下类型的if语句:
// a,b,c,d needed to run
if ( empty(a) ) {
echo 'a is empty';
} elseif ( empty(b) ) {
echo 'b is empty';
} elseif ( empty(c) ) {
echo 'c is empty';
} elseif ( empty(d) ) {
echo 'd is empty';
} else {
// run code with a,b,c,d
}
有没有办法检测哪一个条件是假的(是emtpy)?
if ( empty(a) || empty(b) || empty (c) || empty(d) ) {
echo *statement n*.' is empty';
} else {
// run code with a,b,c,d
}
我想过一个for循环,但这需要大量的代码更改.
也许有人可以指出我正确的方向.
提前致谢 :)
延
解决方法:
使用compact,array_filter和array_diff:
$arr = compact( 'a', 'b', 'c', 'd' );
if( count( $empty = array_diff( $arr, array_filter( $arr ) ) ) )
{
echo key( $empty ) . ' is empty';
}
else
{
echo 'OK';
}
通过这种方式,在$empty中,您拥有所有空值.因此,您可以回显所有键的警告:
echo 'Empty: ' . implode( ', ', array_keys( $empty ) );
标签:php,if-statement
来源: https://codeday.me/bug/20190724/1525294.html