array_map 不允许在 use() 中传递对象
array_map not allow to pass object in use()
我正在尝试这个:
array_map(function($data) use ($this->id) {
//code
}, $arr);
我收到无法将对象传递给 use()
的错误。
我做错了什么?
谢谢
您不需要将 $this
中的任何内容传递给闭包。 $this
默认情况下在闭包中可用。示例:
class A {
private $id = 500;
function B() {
$arr = [1, 2, 3];
array_map(
function($data) {
echo "I'm data $data with id {$this->id}\n";
},
$arr
);
}
}
$a = new A();
$a->B();
此代码将打印
I'm data 1 with id 500
I'm data 2 with id 500
I'm data 3 with id 500
或者,如果您想将任何内容传递给 use
构造而不是直接使用 $this
,只需将您的值赋给一个变量,然后将这个简单变量传递给 use
。您不能在 use
.
中列出表达式
我正在尝试这个:
array_map(function($data) use ($this->id) {
//code
}, $arr);
我收到无法将对象传递给 use()
的错误。
我做错了什么?
谢谢
您不需要将 $this
中的任何内容传递给闭包。 $this
默认情况下在闭包中可用。示例:
class A {
private $id = 500;
function B() {
$arr = [1, 2, 3];
array_map(
function($data) {
echo "I'm data $data with id {$this->id}\n";
},
$arr
);
}
}
$a = new A();
$a->B();
此代码将打印
I'm data 1 with id 500
I'm data 2 with id 500
I'm data 3 with id 500
或者,如果您想将任何内容传递给 use
构造而不是直接使用 $this
,只需将您的值赋给一个变量,然后将这个简单变量传递给 use
。您不能在 use
.