Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php], dwa konstruktory
cornholio666
post 26.05.2006, 16:21:19
Post #1





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


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 ...


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
dr_bonzo
post 26.05.2006, 16:23:26
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


nie ma takiej opcji


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

robi to samo


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
siemakuba
post 26.05.2006, 16:27:29
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


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.

Ten post edytował siemakuba 26.05.2006, 16:28:35
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 01:11