[英]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.