Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]
Forum PHP.pl > Forum > Przedszkole
cornholio666
Jak użyć dwóch konstruktorów?

  1. <?php
  2. class Cos{
  3.  
  4.  var $name;
  5.  
  6.  function __construct(){
  7.  
  8. $this->name = '';
  9.  }
  10.  
  11.  function __construct($name){
  12.  
  13.  $this->name = $name;
  14.  }
  15.  }
  16. ?>


Wywala bład Fatal error: Cannot redeclare Cos::__construct() in ...
dr_bonzo
nie ma takiej opcji


  1. <?php
  2. function __construct($name = "")
  3. {
  4. $this->name = $name;
  5. }
  6. ?>

robi to samo
siemakuba
Wygląda to tak jakbyś chciał użyć przeciążania obiektów (overloading).
Niestety, w php nie da rady w taki sposób tego rozwiązać.

nie wiem jak to wyglada akurat w przypadku konstruktora, ale normalnie mozesz chyba uzyc magicznej metody _call która będzie łapała odwołania do metod które nie zostały w klasie zdefiniowane i w tej metodzie na podstawie otrzymanych danych dalej decydowac co robic.

W PHP4 bedziesz musiał dodatkowo zaznaczyc, ze instancja danej klasy ma być przeciążana. (overload" title="Zobacz w manualu php" target="_manual). Nie jestem tez pewien czy w ten sposob w PHP4 nie uzykasz jedynie __set i __get.

pozdr.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.