我們知道php屬於弱類型語言,並沒有像JAVA這種強型別語言一樣有重載。從這個定義來說,php是沒有重載的,因為php不允許存在相同的函數名。
但是沒有並不意味著不能實現。
1.首先先讓我們看看Java的一重載個例子:
class demo { public static void main (String[] args) { sum(1,1);//2 sum(1,1.5);//2.5 sum(1.5,1.5);//3.0 } public static void sum(int var1,int var2){ System.out.println(var1+var2); } public static void sum(int var1,double var2){ System.out.println(var1+var2); } public static void sum(double var1,double var2){ System.out.println(var1+var2); } }
如果用PHP去實現上面的例子那怎麼做呢?
<?php function sum($var1,$var2){ echo $var1+$var2; } sum(1,1);//2 sum(1,1.5);//2.5 sum(1.5,1.5);//3 ?>
2.選擇性參數,允許變數設定預設值
JAVA重載例子:
class demo { public static void main (String[] args) { sum(1,2);//3 sum(1,2,3);//6 } public static void sum(int var1,int var2){ System.out.println(var1+var2); } public static void sum(int var1,int var2,int var3){ System.out.println(var1+var2+var3); }}
用php選擇性參數特性實現:
<?php function sum($var1,$var2,$var3=NULL){//$var3設定預設值 echo $var1+$var2+$var3; } sum(1,2);//2 sum(1,2,3);//2.5 ?>
可以看到同樣的功能,但是php這種弱類型語言實現起來更簡單