加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

嵌套PHP函数:用于什么目的?

发布时间:2020-12-13 22:39:37 所属栏目:PHP教程 来源:网络整理
导读:为什么 PHP允许嵌套函数? ?phpfunction foo() { function bar() { return "bar"; } return "foo";}print foo();print bar(); ..是有效的PHP. 但: 为什么需要嵌套? 即使如此,为什么我可以从任何地方调用bar(而不是,例如只用foo(),或者通过foo.bar()等. 我
为什么 PHP允许嵌套函数?
<?php
function foo() {
    function bar() {
        return "bar";
    }
    return "foo";
}
print foo();
print bar();

..是有效的PHP.

但:

>为什么需要嵌套?
>即使如此,为什么我可以从任何地方调用bar(而不是,例如只用foo(),或者通过foo.bar()等.

我今天碰到了这个,因为我在某个地方忘记了一个结束括号,而且还有一个太多了.代码有效,没有错误抛出;但这一切都开始表现得非常奇怪.函数未被声明,回调变得狂暴等等.
这是一个功能,如果是这样,目的是什么?还是有些特质?

答案:评论员指出这是What are php nested functions for的副本.

请注意,订单在这里很重要;你不能在你的例子中调用foo()之前调用bar().这里的逻辑似乎是foo()的执行定义了bar()并将其置于全局范围内,但是由于范围的限制,它没有在执行foo()之前定义.

这里的用法是函数重载的原始形式;你可以让你的bar()函数执行不同的操作,具体取决于foo()的哪个版本声明它,当然假设每个不同版本的foo()确实定义了一个bar()函数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读