我有一个对象,当我执行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>
";
}它的行为不像我所期望的那样,这是一种无稽之谈:
000000000 = 000000000<br>
111000000 = 111000000<br>
0 = 0<br>
3 = 3<br>
0 = 0<br>
0 = 0<br>
0 = 0<br>有人知道这种行为背后的逻辑吗?
发布于 2014-09-07 22:59:59
很确定。你正在设置:
$this->{$key} = $Value;所以现在它们都有相同的价值。如果你立即回应:
echo $this->{$key} . " = " . $Value您将得到相同的输出为两个!这就像设置$a = $b,然后当echo $a = $b为两种情况显示相同的值时都会感到惊讶。
你想要的是:
echo $key . " = " . $Valuehttps://stackoverflow.com/questions/25715505
复制相似问题