解析错误 - 比较if语句中的int值

时间:2015-03-18 19:21:45

标签: php parsing if-statement casting int

目前我正在研究一个应该改变数组的pos值(int值)的函数:

$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条件的行发生了一般的解析错误。我尝试在int中使用$ comb ['pos'],但这似乎无法解决问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果你真的想改变$ comb,你应该把它作为参考传递(&登录参数)

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