[英]Check multiple variables if set and not 0
我有多个变量,我需要检查所有这些变量是否都设置为“0”。 所以所有这些变量都需要有一个值。
我从 WordPress ACF 获得的值:
$p1 = get_field( "wert", $s1 );
$p2 = get_field( "wert", $s2 );
$p3 = get_field( "wert", $s3 );
$p4 = get_field( "wert", $s4 );
$p5 = get_field( "wert", $s5 );
$p6 = get_field( "wert", $s6 );
$p7 = get_field( "wert", $s7 );
$p8 = get_field( "wert", $s8 );
$p9 = get_field( "wert", $s9 );
$p10 = get_field( "wert", $s10 );
不,我需要检查它们是否都有价值。 我用 if 语句来做到这一点:
if($s1 && $s2 && $s3 && $s4 && $s5 && $s6 && $s7 && $s8 && $s9 && $s10) {
// MY CODE
}
但是当我这样做时,当变量之一为“0”时,我仍然执行脚本。 我怎样才能检查这个尽可能短?
太感谢了!
您的检查是检查 $s 变量,这不是存储在 $p 变量中的字段的值。
您可以将变量转换为数组,并使用 in_array 进行检查:
$p1 = get_field( "wert", $s1 );
$p2 = get_field( "wert", $s2 );
$p3 = get_field( "wert", $s3 );
$p4 = get_field( "wert", $s4 );
$p5 = get_field( "wert", $s5 );
$p6 = get_field( "wert", $s6 );
$p7 = get_field( "wert", $s7 );
$p8 = get_field( "wert", $s8 );
$p9 = get_field( "wert", $s9 );
$p10 = get_field( "wert", $s10 );
$check = [$p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8, $p9, $p10];
if (in_array(0, $check)) {
echo "Got 0";
}else {
echo "No 0";
}
拥有如此多的变量并不是一个好习惯。 您应该为此使用 arrays 。
当您知道有多少字段需要为正时,您就可以计算它们。
$values = [];
$max = 10;
for ($i = 1; $i <= $max; $i++) {
$values[] = get_field('wert', ${"s$i"});
}
$filled = array_reduce($values, fn($carry, $value) => $carry += (isset($value) && $value != 0) ? 1 : 0, 0);
if ($filled !== $max) {
echo "Only $filled of $max are filled";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.