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");
}
Run Code Online (Sandbox Code Playgroud)
我定义了这样的函数
输出是
is callable outer 1
is callable inner
Run Code Online (Sandbox Code Playgroud)
我怎么能提到$succCallback里面$success的身体呢.
你必须使用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);
}
Run Code Online (Sandbox Code Playgroud)