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 不支援函數重載(就是不能重名),所以,不允許重複宣告函數(說到重載,倒是在類別裡面可以實現,只是意義完全不同,感覺就像錯誤處理函數一樣,只是用來友善展示的,個人覺得,沒什麼卵用)。