php变量没有传递值

时间:2013-05-27 20:32:12

标签: php

我有这段代码:

foreach($rec as $rk => $r){
    $parrecid = 0;
    $id = 0;
    if ($rk=='PARENT_RECORD_ID'){
        echo $rk . ' = ' . $r . '<br>';
        $parrecid == $r;
    }
    if ($rk=='ID'){
        echo $rk . ' = ' . $r . '<br>';
        $id == $r;
    }

}
    echo 'pushing id = ' . $id . ' parrecid=' . $parrecid . '<br>';
    array_push($arrobj, $id, $parrecid);

理论上,当$ rk ='PARENT_RECORD_ID时,$ parrecid值应该被填充。 $ id的情况相同,如果$ rk ='ID'那么......你得到了图片。 但是,这从未发生过。两个值都保持为0。 有什么想法吗?

4 个答案:

答案 0 :(得分:2)

首先,如其他答案中所述,使用=进行分配。

第二件事是,在你的循环中设置$parrecid$id后,你不会立即停止循环,所以你也会在下一个循环运行中再次覆盖它们:{{1 }},再次$parrecid = 0; $id = 0;

一种解决方案是在循环外设置变量:

0

答案 1 :(得分:1)

你的变量$ parrecid = 0;和$ id = 0;使用for循环定义更新的值,除非它们在for循环之前定义,并且在赋值时使用正确的赋值(=而不是==)运算符,否则更新的值将不可读。

答案 2 :(得分:1)

首先将$ parrecid和$ id的初始化从循环中取出 其次,不要使用==将值放入变量中。 $parrecid = $r;代替$parrecid == $r;
您的代码应如下所示:

$parrecid = 0;
$id = 0;

foreach($rec as $rk => $r){
    if ($rk=='PARENT_RECORD_ID'){
        echo $rk . ' = ' . $r . '<br>';
        $parrecid = $r;
    }
    if ($rk=='ID'){
        echo $rk . ' = ' . $r . '<br>';
        $id = $r;
    }

}

答案 3 :(得分:0)

使用=代替==进行分配。另外,在foreach循环之外声明这些变量,否则它们将在每次循环调用时重置。