内部函数能访问外部函数的参数吗?

inssuc 2011-11-16 08:48:02
想实现一个内部函数用于回调,所以参数个数是固定的,但又需要外部的参数用于改变返回算法,所以想在内部函数内使用外部函数的参数:


function outer($a, $b) {
function inner($b) {
var_dump($a);//测试a,这里肯定是NULL
}
inner($b);
}

outer('param_a', 'param_b');


这样结果肯定是NULL,但用对内部函数用global也不行,请问有没有解决方法?
...全文
135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
inssuc 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 helloyou0 的回复:]

php5.3已有闭包:

PHP code


function outer($a, $b) {

$closure = function($b) use ($a){
var_dump($a);
};
$closure ($b);
}

outer('param_a', 'param_b');

outer('param_a1', 'param_b1……
[/Quote]

新知识,收藏
inssuc 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sink 的回复:]

把$a,$b组成一个数组传给内部函数,可以不?
PHP code

$arr=array('a'=>$a,'b'=>$b);
function inner($arr) {
var_dump($arr['a']);
}
[/Quote]

不行哦,$arr还是在外边,和inner里的不是一个
helloyou0 2011-11-17
  • 打赏
  • 举报
回复
php5.3已有闭包:



function outer($a, $b) {

$closure = function($b) use ($a){
var_dump($a);
};
$closure ($b);
}

outer('param_a', 'param_b');

outer('param_a1', 'param_b1');
sink 2011-11-16
  • 打赏
  • 举报
回复
把$a,$b组成一个数组传给内部函数,可以不?

$arr=array('a'=>$a,'b'=>$b);
function inner($arr) {
var_dump($arr['a']);
}
sink 2011-11-16
  • 打赏
  • 举报
回复
把$a,$b组成一个数组传给内部函数,可以不?

$arr=array('a'=>$a,'b'=>$b);
function inner($arr) {
var_dump($arr['a']);
}
tottyandbaty 2011-11-16
  • 打赏
  • 举报
回复
闭包?PHP里面貌似没有闭包这个说法,你倒是可以用create_function创建匿名函数试试

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧