我正在尝试从函数中访问$my_var
,我知道我可以使用global $my_var
来执行此操作,但是IMO并不是一个好方法,因为$my_var
call_user_func
1}}在use
之外,它将使用那个而不是其中的一个。我无法使用call_user_func(function(){
$my_var = null;
function myFunc($value1, callable $callback){
// Access $my_var
}
});
myFunc('value 1', function(){});
,因为该功能不是匿名函数。
有没有一种很好的方法可以在不使用课程的情况下完成这项工作?
if(fullname.equals(contacts[i].getFirstName())){
答案 0 :(得分:-1)
有几种方法。最简单的方法是简单地将$var = null;
function foo( $var ) { $var++; }
$var = foo( $var );
作为参数传递,并通过函数的返回值更新它:
& $var
另一种方法是将参数声明为引用($var = null;
function foo( & $var ) { $var++; }
foo( $var );
):
$var = null;
$foo = function() use( & $var ) { $var++; }
$foo();
第三种方法是使用匿名函数并指定变量的 use :
var createArray = function(){
return function(){
return [{brand: "extra", price: 1.50},
{brand: "twoMint", price: 0.25},
{brand: "trident", price: 2.50},
{brand: "bubble", price: 0.10}]
};
};