簡體   English   中英

檢查多個變量,如果設置而不是 0

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM