我有一个对象,当我执行var_dump时,这是输出:
array(7) {
["foodRaw" ]=> string(9) "000000000"
["broodRaw" ]=> string(9) "111000000"
["food" ]=> int(0)
["brood" ]=> int(3)
["size" ]=> int(0)
["foodHarvest" ]=> int(0)
["broodHarvest"]=> int(0)
}
当我这样做时
foreach ($data AS $key => $Value){
$this->{$key} = $Value;
echo $this->{$key} . " = " . $Value . "<br>
";
}
IT并不像我期望的那样行事,它输出了这个废话:
000000000 = 000000000<br>
111000000 = 111000000<br>
0 = 0<br>
3 = 3<br>
0 = 0<br>
0 = 0<br>
0 = 0<br>
有人知道这种行为背后的逻辑吗?
答案 0 :(得分:3)
很确定。你正在设置:
$this->{$key} = $Value;
所以现在两者都有相同的价值。如果你立即回应他们:
echo $this->{$key} . " = " . $Value
两者都会得到相同的输出!这就像设置$a = $b
,然后在echo $a = $b
向您显示两者的相同值时感到惊讶。
我认为你想要的是:
echo $key . " = " . $Value