Php版本: 5.4
function foo(callable $succCallback) {
$isCallable = is_callable($succCallback);
echo "is callable outer ".is_callable($succCallback);
$success = function($fileInfo) {
echo "<br>is callable inner".is_callable($succCallback);
};
$this->calllll($success);
}
function calllll(callable $foo) {
$foo("hello");
}我定义了一个这样的函数
输出是
is callable outer 1
is callable inner我怎么能提到$succCallback在$success的身体里。
发布于 2014-07-21 08:26:37
您必须使用use构造。它允许从父作用域继承变量:
function foo(callable $succCallback) {
$isCallable = is_callable($succCallback);
echo "is callable outer ".is_callable($succCallback);
$success = function($fileInfo) use($succCallback) {
echo "<br>is callable inner".is_callable($succCallback);
};
$this->calllll($success);
}发布于 2014-07-21 08:26:46
$success = function ($fileInfo) use ($succCallback) {
echo "<br>is callable inner" . is_callable($succCallback);
};要在匿名函数中包含来自周围作用域的变量,需要使用use ()显式扩展它们的作用域。
发布于 2014-07-21 08:27:11
若要使用父作用域中的变量,请使用use
$success = function($fileInfo) use ($succCallback) {
echo "<br>is callable inner".is_callable($succCallback);
};https://stackoverflow.com/questions/24860462
复制相似问题