在if语句中有两个foreach循环

问题描述 投票:0回答:2

想知道是否可以对if语句进行foreach循环调用,如下所示:

if (class_exists('WooCommerce')) { 
    foreach (array_combine($val1, $val2) as $key => $row_values)
}
else {
    foreach ( $val1 as $key => $row_values ) 
}

{ begin of loop code

我想要做的是,如果woocommerce插件处于活动状态,则会有一个foreach循环,如果woocommerce不活动,则会有另一个foreach循环。

php loops if-statement foreach
2个回答
3
投票

这是不可能的,因为这是无效的语法。

你可以做的是这样的:

<?php
$iterationArray = class_exists('WooCommerce') ? array_combine($val1, $val2) : $val1;
foreach ($iterationArray as $key => $row_values) {
    // begin of loop code
} // end loop

0
投票

如果循环之前的条件分配将用于循环的变量,则需要执行的操作,如下所示:

if ( class_exists( 'WooCommerce' ) ) {
    $newVal = array_combine($val1, $val2);
} else {
    $newVal = $val1;
}

foreach ( $newVal as $key => $row_values ) {
    // do stuff
}

结果将与您尝试的结果相同。但是PHP中不支持您在问题中提出的语法,可以使用上面提出的方法解决。

© www.soinside.com 2019 - 2024. All rights reserved.