我在PHP中看到一种我不理解的行为.这里是 :
foreach($food as $fruit) {
$fruit["banana"] = "yummy";
dd($fruit); /* returns "banana" => "yummy" */
}
dd($fruit); /* returns "banana" => "yummy" */
dd($food[0]); /* doesn't return "banana" => "yummy" as I expect it to */
Run Code Online (Sandbox Code Playgroud)
为简单起见,我将所有的die dump取消注释,但当然我只是逐个运行它们.
为什么我的推动不会影响整个阵列?
该数组看起来像这样
array(2) {
[0]=> array(2) {
["id"]=> string(1) "1"
["name"]=> string(7) "Something"
}
[1]=> array(2) {
["id"]=> string(1) "2"
["name"]=> string(5) "Somewhere"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果要更改foreach中的数组元素,则需要使用引用,因为foreach中的值只是临时值,不会影响原始值.
例:
foreach($food as &$fruit) {
$fruit["banana"] = "yummy";
dd($fruit); /* returns "banana" => "yummy" */
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |