We know that PHP is a weakly typed language and does not have overloading like a strongly typed language like JAVA. From this definition, PHP is not overloaded because PHP does not allow the same function name to exist.
But not having it doesn’t mean it can’t be achieved.
1. First, let us take a look at an overloading example in 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); } }
What if we use PHP to implement the above example?
<?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. Optional parameters, allowing variables to set default values
JAVA overloading example:
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); } }
Use PHP optional parameter feature to implement:
<?php function sum($var1,$var2,$var3=NULL){//$var3设置默认值 echo $var1+$var2+$var3; } sum(1,2);//2 sum(1,2,3);//2.5 ?>
You can see the same function, but it is simpler to implement in a weakly typed language like php
The above is the detailed content of Java and PHP overloading comparison case. For more information, please follow other related articles on the PHP Chinese website!