Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][Obj] __construct
Spirit86
post
Post #1





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Witam,
cały czas pisałem skrypt na PHP5, jednakże chcę, aby był kompatybilny ze wszystkimi wersjami php. Gdzieś wyczytałem, że konstruktor klasy powinnien nazywać się "__construct", wszystko jest OK, jak działamy na PHP5, gdy odpalamy ten sam skrypt na starszej wersji php konstruktor nie działa. W związku z czym mam pytanie, jak nazywać konstruktor?!


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
kubatron
post
Post #2





Grupa: Zarejestrowani
Postów: 581
Pomógł: 0
Dołączył: 21.07.2003
Skąd: Jasło

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


Wystarczy popatrzyć w manuala i poczytać o PHP4 smile.gif Konstruktor w PHP4 nazywamy taką samą nazwą jak klasa nasze smile.gif A w php5 wystarczy ze nazwiemy go __construct i automatycznie wykryje ze to jest nasz konstruktor klasy smile.gif
  1. <?php
  2. class Test {
  3. function Test() {
  4. echo 'To jest Konstruktor w PHP4';
  5. }
  6. }
  7. ?>

  1. <?php
  2. class Test {
  3. public function __construct() {
  4. echo 'Konstruktor w PHP5';
  5. }
  6. }
  7. ?>


--------------------
„Człowiek jest wielki nie przez to, co posiada, lecz przez to, kim jest;
nie przez to, co ma, lecz przez to, czym dzieli się z innymi.”
Jan Paweł II
Go to the top of the page
+Quote Post
Speedy
post
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

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


Z tego , co mi wiadomo w php 5 konstruktor zwie się właśnie : __construct() .
Natomiast w php 4 konstruktor jest metodą, która zwie się tak samo jak klasa, w której ów metoda się znajduje. To powinno działać w php 4 i 5 .

Pozdrawiam.

// edit

Kubatron jest o minutę szybszy snitch.gif

Ten post edytował Speedy 15.06.2005, 12:31:17


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
Spirit86
post
Post #4





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


tak, ale problem w tym, zeby napisać to, tak aby było zgodne ze standartami, nowym standartem jest __construct, a starym ta sama nazwa, jednakże nowa nie działa ze starymi i to jest ten ból...
@kubatron: W tym sęk, że czytałem manuala snitch.gif

Ten post edytował Spirit86 15.06.2005, 12:57:40


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
crash
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


A coś takiego?:
  1. <?php
  2. class Klasa
  3. {
  4.  function __Klasa()
  5.  {
  6. // ...
  7.  }
  8.  function __construct()
  9.  {
  10. $this->Klasa();
  11.  }
  12.  // ...
  13. }
  14. ?>


--------------------
Go to the top of the page
+Quote Post
Spirit86
post
Post #6





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


w sumie myślałem, że jak napiszę:
  1. <?php
  2.  
  3. class Klasa
  4. {
  5.  function Klasa()
  6.  {
  7. // ...
  8.  }
  9.  function __construct()
  10.  {
  11.  //..
  12.  }
  13.  
  14. }
  15. ?>
i włączę to na php5 to wywali błąd, a tak nie jest smile.gif


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #7





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

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


Jaki ma sens dostosowywanie skryptu pisanego pod 5ke do starszych wersji. Niektorych nowosci 5ki nie zaimplementujesz w starszych wersjach, np. interfejsy, zakres widocznosci pol/metod klasy.

Pisz moze pod czworke -- powinno dzialac od razu w piatce (no, moze z malutkimi przerobkami).


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
kubatron
post
Post #8





Grupa: Zarejestrowani
Postów: 581
Pomógł: 0
Dołączył: 21.07.2003
Skąd: Jasło

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


Popieram cie dr_bonzo, a tak apropo jak piszesz to pisz pod jedną wersje i nie rób sobie na przyszlośc problemów jak coś z PHP4 i PHP5 napisać tak aby działało smile.gif Bo to się mija z celem i zwalnia działanie twojej aplikacji smile.gif


--------------------
„Człowiek jest wielki nie przez to, co posiada, lecz przez to, kim jest;
nie przez to, co ma, lecz przez to, czym dzieli się z innymi.”
Jan Paweł II
Go to the top of the page
+Quote Post
SongoQ
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Rozniez popieram @dr_bonzo po co sobie problemy stwarzac i pisac pod 2 wersje.


--------------------
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 Aktualny czas: 21.08.2025 - 23:31