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
内部{{1}}的身体。
答案 0 :(得分:6)
您必须使用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);
}
答案 1 :(得分:2)
$success = function ($fileInfo) use ($succCallback) {
echo "<br>is callable inner" . is_callable($succCallback);
};
要在匿名函数中包含周围范围内的变量,您需要使用use ()
显式扩展其范围。
答案 2 :(得分:2)
要使用父作用域中的变量,请使用use
:
$success = function($fileInfo) use ($succCallback) {
echo "<br>is callable inner".is_callable($succCallback);
};