php的匿名函数怎么访问外部变量?

php的匿名函数怎么访问外部变量?请看图中的代码。红色框中的是匿名函数外定义的变量$file。如何在函数内部访问?... php的匿名函数怎么访问外部变量? 请看图中的代码。红色框中的是匿名函数外定义的变量$file。 如何在函数内部访问? 展开
 我来答
双枪老椰子
推荐于2018-03-30 · TA获得超过5.5万个赞
知道大有可为答主
回答量:5797
采纳率:93%
帮助的人:1873万
展开全部
使用create_function()创建"匿名"函数
前面提到PHP5.3中才才开始正式支持匿名函数,说到这里可能会有细心读者有意见了,因为有个函数是可以生成匿名函数的: create_function函数,在手册里可以查到这个函数在PHP4.1和PHP5中就有了,这个函数通常也能作为匿名回调函数使用,例如如下:

<?php

$array = array(1, 2, 3, 4);
array_walk($array, create_function('$value', 'echo $value'));

这段代码只是将数组中的值依次输出,当然也能做更多的事情。 那为什么这不算真正的匿名函数呢,我们先看看这个函数的返回值,这个函数返回一个字符串,通常我们可以像下面这样调用一个函数:

<?php

function a() {
echo 'function a';
}

$a = 'a';
$a();

我们在实现回调函数的时候也可以采用这样的方式,例如:

<?php

function do_something($callback) {
// doing
# ...

// done
$callback();
}

这样就能实现在函数do_something()执行完成之后调用$callback指定的函数。回到create_function函数的返回值:函数返回一个唯一的字符串函数名,出现错误的话则返回FALSE。这么说这个函数也只是动态的创建了一个函数,而这个函数是有函数名的,也就是说,其实这并不是匿名的。只是创建了一个全局唯一的函数而已。
喝咖啡的胖胖鱼
2012-08-19 · TA获得超过2221个赞
知道小有建树答主
回答量:770
采纳率:0%
帮助的人:351万
展开全部
一是访问别的函数的返回结果

二是,直接变成全局变量 global
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千羽杰
2012-08-17 · 超过35用户采纳过TA的回答
知道答主
回答量:214
采纳率:0%
帮助的人:80.5万
展开全部
我知道的是把它写成全局变量,global~~ 或者在类里头定义之后用self::
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式