php的成员方法中可以写自定义函数么?

发布于 2022-09-03 14:18:28 字数 716 浏览 17 评论 0

php的成员方法中可以写自定义函数么?
我在一个方法中定义了函数,但是调用的时候报错
这是那个报错的方法
clipboard.png
报错如下

clipboard.png

但是我还有另一个方法中同样写了函数并进行递归,可是没有报错。

clipboard.png

这是调用这两个方法的接口

clipboard.png

为什么会报错呢?谁能给讲解一下,或者有好的处理方法也行

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

揽月 2022-09-10 14:18:28

谢邀,可以自定义,你这里报错是因为你在其他地方也定义了getTree函数,错误是说你重复定义了。

另外还有一个更好的选择PHP闭包,大概如下:

class Test{
    public function index(){

        $hello_closures = function ($str){
            echo $str;
        };

        $hello_closures("hello , php closures function");
    }
}

官方文档看这里,很易懂:http://php.net/manual/zh/func...

仙女 2022-09-10 14:18:28

为什么不把你的自定义函数 写成类里面的成员方法呢?

深陷 2022-09-10 14:18:28

报错信息已经很明显了,不能重复定义getTree函数,你已经在LabelController中定义过了

杀お生予夺 2022-09-10 14:18:28

php 里面的函数(不是类的方法)都是全局的,也就是说,无论你是在全局中定义的,还是在函数中定义的函数,都被认为全局的(这点和js不一样,不要混淆)。

php 不支持函数重载(就是不能重名),所以,不允许重复声明函数(说到重载,倒是在类里面可以实现,只是意义完全不同,感觉就像错误处理函数一样,只是用来友好展示的,个人觉得,没什么卵用)。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文