Maison  >  Article  >  développement back-end  >  Solution au problème des constructeurs multiples en php

Solution au problème des constructeurs multiples en php

黄舟
黄舟original
2017-07-02 09:43:292710parcourir

Pour implémenter un constructeur , il faut deux variables , et l'autre constructeur est un tableau .
Par exemple :

public function construct($id, $dname)
public function construct($device=array())

Je ne l'ai trouvé que sur Internet. Il est implémenté en jugeant le nombre de paramètres via func_num_args. Existe-t-il un moyen de l'implémenter en jugeant le type ?

Il est impossible d'avoir deux fonctions de méthode portant le même nom dans un même fichier en même temps
2 Si elles sont dans des fichiers différents, vous pouvez utiliser l'espace de noms pour implémenter la même fonction Call (la version php doit être 5.3.0 ou supérieure)Votre jugement n'a donc pas de sens réel

PHP ne peut pas être surchargé, changez les paramètres en tableau et faites la différence à l'intérieur la fonction

Moi Vous voulez voir comment ils cohabitent dans le code source, l'héritage ?

gettype -- Récupère le type de la variable


construct n'est pas le constructeur de la classe php
construct l'est !

Bien que php ne supporte pas la surcharge, l'affiche n'a pas dit qu'il s'agit d'une méthode du même nom dans une classe

Jugez le type de paramètre dans le constructeur constructeur, puis prenez différentes branches C'est ça. Si vous ne supportez pas la surcharge de manière native, simulez-la simplement ~

php ne prend pas en charge la surcharge de fonctions comme C. Tout comme vous l'avez dit, utilisez la fonction func_num_arg puis jugez les paramètres pour créer une branche. initialisation

Vous pouvez déterminer le nombre et le type de paramètres dans construct.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn