2016-06-22 6 views
0

fragt sich, ob es möglich ist, einen foreach-Schleife Anruf haben, wenn diese Aussage wie:zwei Forech Schleifen auf if-Anweisung

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

{ begin of loop code 

Was ich versuche zu tun, eine foreach-Schleife haben, wenn WooCommerce Plugin aktiv ist und eine weitere foreach-Schleife zu haben, wenn Woocommerce nicht aktiv ist.

+0

keine Ahnung, was du meinst. Sie haben bereits zwei Aufgaben in Ihrer if() -Anweisung. –

+3

Nein. Sie können das Array nur einer Variablen innerhalb des if/else zuweisen und dann das zugewiesene Array in der foreach-Schleife verwenden. – Rizier123

+0

Können Sie uns mitteilen, was Sie zu tun versuchen? –

Antwort

3

Dies ist nicht möglich, wie Sie es versuchen, da das eine ungültige Syntax ist.

Was Sie kann tun, ist so etwas wie das:

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

Was Sie tun müssen, wenn eine Bedingung vor der Schleife die Variablen zuweisen Sie eine Schleife verwenden, wie folgt aus:

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

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

Das Ergebnis entspricht dem, was Sie versucht haben. Aber die Syntax, die Sie in Ihrer Frage vorgeschlagen haben, wird in PHP nicht unterstützt und kann mit der oben vorgeschlagenen Methode umgehen.

Verwandte Themen