Je veux quelques constructeurs définis dans une classe PHP. Cependant, mon code pour les constructeurs est actuellement très similaire. Je préférerais ne pas répéter le code si possible. Existe-t-il un moyen d'appeler d'autres constructeurs à l'intérieur d'un constructeur dans une classe php? Existe-t-il un moyen d'avoir plusieurs constructeurs dans une classe PHP? Je sais que je pourrais résoudre cela en créant par exemple certaines méthodes Init. Mais y a-t-il un moyen de contourner cela?Appel d'un autre constructeur à partir d'un constructeur en PHP
3
A
Répondre
5
Vous ne pouvez pas surcharger des fonctions comme celle de PHP. Si vous faites ceci:
class A {
public function __construct() { }
public function __construct($a, $b) { }
}
votre code ne sera pas compilé avec une erreur que vous ne pouvez pas redéclarer __construct()
.
La méthode consiste à utiliser des arguments facultatifs.
function __construct($service, $action, $security = '') {
if (empty($service) || empty($action)) {
throw new Exception("Both service and action must have a value");
}
$this->$mService = $service;
$this->$mAction = $action;
$this->$mHasSecurity = false;
if (!empty($security)) {
$this->$mHasSecurity = true;
$this->$mSecurity = $security;
}
}
3
Et si vous avez vraiment besoin d'avoir des arguments complètement différents, utilisez le modèle Factory.
class Car {
public static function createCarWithDoors($intNumDoors) {
$objCar = new Car();
$objCar->intDoors = $intNumDoors;
return $objCar;
}
public static function createCarWithHorsepower($intHorsepower) {
$objCar = new Car();
$objCar->intHorses = $intHorsepower;
return $objCar;
}
}
$objFirst = Car::createCarWithDoors(3);
$objSecond = Car::createCarWithHorsePower(200);
Questions connexes
- 1. appel constructeur d'une autre classe
- 2. Appel Constructor d'un autre constructeur
- 3. Appel du constructeur par défaut à partir du constructeur paramétré
- 4. Appel d'un constructeur à partir d'arguments variables avec PHP
- 5. Appel d'un constructeur
- 6. Appel de constructeur ambigu
- 7. Appel de fonctions de comptabilisation temporelle à partir d'un constructeur
- 8. C#: appel d'une méthode virtuelle à partir du constructeur; Conseil?
- 9. Appel des fonctions membres à partir d'un constructeur
- 10. Appel de fonction/constructeur ambigu en C++
- 11. appel constructeur de base en C#
- 12. Appel du constructeur de classe enfant avant le constructeur parent
- 13. - appeler un constructeur d'un autre
- 14. appeler un constructeur d'un autre en Java
- 15. Appel du constructeur des enfants inconnus
- 16. Pouvez-vous vérifier null lorsque un constructeur appelle un autre constructeur en utilisant l'objet donné au premier constructeur?
- 17. Appel Java de Scala: constructeur protégé
- 18. appel constructeur de la classe de base
- 19. Le DUND d'Android prend-il en charge DUN DT (alias Dial Up client alias Data Terminal aka "dund --connect")
- 20. Initialisation du constructeur à partir du cache stocké en C#
- 21. Surcharge "base" constructeur ou "this" constructeur?
- 22. Constructeur avec moins d'arguments provenant d'un constructeur
- 23. Constructeur surchargé appelant un autre constructeur, mais pas en tant que première instruction
- 24. Puis-je appeler un constructeur surchargé d'un autre constructeur de la même classe en C#?
- 25. Création d'un tableau à partir d'un constructeur en C#
- 26. Appel du constructeur en tant que fonction dans C#
- 27. problème constructeur en java
- 28. constructeur Résumé en C#
- 29. étranges problèmes de constructeur/copie de constructeur C++ en g ++
- 30. constructeur de classe