【发布时间】:2021-08-10 19:26:23
【问题描述】:
我试图在map 方法期间递增,但是我的变量似乎没有保存新值。我的代码:
$position = 0;
$statement = $medias->map(fn(string $media) => [
'position' => ++$position
])->values();
我的预期结果是:
#items: array:4 [
0 => array:4 [
"position" => 1
]
1 => array:4 [
"position" => 2
]
2 => array:4 [
"position" => 3
]
3 => array:4 [
"position" => 4
]
]
其实是这样的
#items: array:4 [
0 => array:4 [
"position" => 1
]
1 => array:4 [
"position" => 1
]
2 => array:4 [
"position" => 1
]
3 => array:4 [
"position" => 1
]
]
在map 内增加是不可能的还是我在这里做错了什么?
【问题讨论】:
-
您的错误信息是什么?我敢打赌,可以通过像这样更改以下行来解决:
$statement = $medias->map(fn(string $media) use($position) => [ -
实际上根本没有错误,一切运行正常,但它给了我错误的值:/我尝试使用你的建议,但 PHPStorm 给了我这个错误:必须在文件的最外层范围(全局范围)或内部
-
那是因为我很笨,没有仔细阅读。否则,我会看到您使用了箭头函数,而这些函数不需要使用
use()。很抱歉