<code>interface A { public function code(); } interface B { public function code(string $string); } class C implements A,B { //...code }</code>
當C同時需要實作這兩個介面的時候,有什麼方法同時使用 A,B兩個介面中的code方法? ? ? ?
本地測試只能使用其中一個方法
<code>interface A { public function code(); } interface B { public function code(string $string); } class C implements A,B { //...code }</code>
當C同時需要實作這兩個介面的時候,有什麼方法同時使用 A,B兩個介面中的code方法? ? ? ?
本地測試只能使用其中一個方法
php不能overloading(同方法名,但參數不一致),能夠在繼承中overriding(同方法名,且不論參數是否一致)。
也就是說php的參數如何變,只要方法名字一樣都被當作本類的同一個方法。
當然作為動態語言,我們可以用魔法方法模擬java的overloading參考:http://php.net/manual/en/lang...
有個粗挫的方法,你把AB介面的具體邏輯都整合到C介面裡面,直接呼叫C介面^_^
func_get_args http://php.net/manual/en/func...
本身這種寫法就是個嘗試錯誤,公用方法寫在外面,類中直接調用,不要每一個口都寫個一樣的,維護起來也巨麻煩
可以了解一下PHP的性狀。
php不支援多態性, 所以最好避免這種寫法