在PHP中,我們不能夠直接通過方法名相同,簽名不同的方法來實現方法重載,因為PHP是弱數據類型,不能很好的區分簽名。但是,可以在PHP的類中運用__call()方法來實現方法重載。當調用一個類中并不存在的方法時,會自動調用__call()方法,其形式為__call($name,$arguments) 其中$name是方法的名稱,$arguments是一個數組類型的參數。
下面的例子是使用PHP的方法重載來動態創建get和set方法。(在面向對象編程中,一個類中的屬性會使用get和set來賦值,但是如果一個類中有太多的屬性,比如30個,那么如果不用方法重載的話,我們就需要寫30個set方法,30個get方法,自已一邊慢慢寫去吧。。。)
通過__Call()方法很容易的解決了這個問題,而不是編寫每個屬性的get set方法。
新聞熱點
疑難解答