Maison > Article > développement back-end > Introduction à la façon d'implémenter la surcharge en php
Cet article présente principalement les méthodes courantes de surcharge en PHP. Il analyse quatre techniques courantes d'implémentation de surcharge en PHP en les comparant avec Java sous forme d'exemples. Les amis dans le besoin peuvent se référer à
Cet article. explique les exemples Méthodes courantes pour implémenter la surcharge en PHP. Partagez-le avec tout le monde pour référence, les détails sont les suivants :
php est un langage faiblement typé et n'a pas de surcharge comme un langage fortement typé comme JAVA.
La surcharge signifie généralement avoir le même nom de fonction ou le même nom de méthode, mais des listes de paramètres différentes (y compris le nombre de paramètres et les types de paramètres)
D'après cette définition, PHP n'est pas surchargé, car PHP le fait ne permet pas au même nom de fonction d'exister.
Mais ne pas l’avoir ne veut pas dire que cela ne peut pas être réalisé.
PHP dispose de quatre mécanismes pour implémenter la surcharge : (par rapport à Java ci-dessous)
1 Type faible, pas besoin de définir des types de variables <.>
Donnez d'abord un exemple de surcharge 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); } }Si le code ci-dessus est implémenté en langage 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. Paramètres facultatifs, permettant aux variables de définir des valeurs par défaut
Exemple de surcharge 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); } }Utilisez la fonctionnalité de paramètre facultatif de php pour implémenter :
<?php function sum($var1,$var2,$var3=NULL){//$var3设置默认值 echo $var1+$var2+$var3; } sum(1,2);//2 sum(1,2,3);//2.5 ?>Vous pouvez voir la même fonction, mais php est faible Type de langages sont plus simples à mettre en œuvre
3. Les paramètres variables
utilisent principalement les deux fonctions suivantes : Retour le nombre de paramètres de la fonction func_num_args()
Renvoie un tableau contenant la liste des paramètres de la fonction func_get_args()
<?php class demo{ public function method(){ $numargs = func_num_args();//获得参数数量 $args = func_get_args();//获得参数数组 switch ($numargs) {//通过变量个数来确定调用哪个方法 case 2: $this->method2($args[0],$args[1]); break; case 3: $this->method3($args[0],$args[1],$args[2]); break; } } private function method2($var1,$var2){ #code... } private function method3($var1,$var2,$var3){ #code... } } //调用 $obj = new demo(); $obj->method('var1','var2'); $obj->method('var1','var2','var3'); //看起来似乎通过一个接口调用 //但其实内部已经调用了各自定义的方法 ?>
4. Utilisez la méthode magique __call()
public mixed __call ( string $name , array $arguments )
sera appelé automatiquement __call()
$nameLe paramètre est le nom de la méthode à appeler$argumentLe paramètre est le tableau de paramètres de la méthode appelée
La méthode de mise en œuvre spécifique Semblable au troisième point ci-dessus :Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!