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 簡単です
以上がJava と PHP のオーバーロードの比較ケースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。