Heim  >  Artikel  >  Backend-Entwicklung  >  递归 - php的成员方法中可以写自定义函数么?

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

WBOY
WBOYOriginal
2016-09-06 08:57:10963Durchsuche

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

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

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

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

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

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

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

回复内容:

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

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

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

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

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

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

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

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

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

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

<code>class Test{
    public function index(){

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

        $hello_closures("hello , php closures function");
    }
}</code>

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

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

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

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn