Ошибка разбора — сравнение значений int в операторе if

В настоящее время я работаю над функцией, которая должна изменять значения pos (int values) массива, как этот:

$comb = array(
'A' => array('pos' => 3, 'lett' => 'C'),
'B' => array('pos' => 4, 'lett' => 'D'),
);

Функция, которая должна выполнять то, что мне нужно, следующая:

function change($comb) {
foreach ($comb as $value) {
if($value['pos']== 1) {
$value['pos'] = 4;
} else {
$value['pos']--;
}
}
}

Я не могу понять, почему во время выполнения кода возникает общая ошибка синтаксического анализа в строке условия if. Я пытался привести $ comb [‘pos’] в int, но это, похоже, не решило проблему.

Любая идея?

0

Решение

Если вы действительно хотите изменить $ comb, вы должны передать его в качестве ссылки ( & войдите в параметры)

function change(&$comb) {
foreach ($comb as $key => $value) {
if($value['pos']== 1) {
$comb[$key]['pos'] = 4;
} else {
$comb[$key]['pos']--;
}
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]