Я ищу эксперта, чтобы объяснить, почему FOREACH не останавливается после UPDATE и не ломается?Перерыв не работает
Код нахожу позицию в матрице 3x10, когда она находит ее и обновляет таблицу, она должна сломаться и выйти, но она продолжает цикл. Очень очень странно.
checkPosUnder('x',array(100000));
function checkPosUnder($userToFill,$underUsers) {
echo "<br>enter func Check on all this users:<br>";
print_r($underUsers);
$newGenUsers = array();
foreach($underUsers as $curuser) {
echo "<br>NEW LOOP<br>";
//$underThisUser
$freeq = $db->prepare("SELECT * FROM tueeunet WHERE username=?");
$freeq->execute(array($curuser));
$freeq->setFetchMode(PDO::FETCH_ASSOC);
$free = $freeq->fetch();
if($free['under1']=='') {
$updateQuery = $db->prepare("UPDATE tueeunet SET under1=? WHERE username=? ");
$updateQuery->execute(array($userToFill,$curuser));
echo "1<br>";
break;
}
elseif($free['under2']=='') {
$updateQuery = $db->prepare("UPDATE tueeunet SET under2=? WHERE username=? ");
$updateQuery->execute(array($userToFill,$curuser));
echo "2<br>";
break;
}
elseif($free['under3']=='') {
$updateQuery = $db->prepare("UPDATE tueeunet SET under3=? WHERE username=? ");
$updateQuery->execute(array($userToFill,$curuser));
echo "3<br>";
break;
}
else {
array_push($newGenUsers, $free['under1'],$free['under2'],$free['under3']);
echo "<br>";
print_r($newGenUsers);
echo "<br>";
checkPosUnder($userToFill,$newGenUsers);
}
}
}
@PLB где вы видите внешний контур? – Headshota
Нет, брос здесь не останавливает цикл, я вижу «NEW LOOP» сразу после эха «1». Я также попробовал RERUTN; после перерыва и все еще видят эхо снова сразу после foreach :-( – Asi