Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: co się stanie jeśli...
Forum PHP.pl > Forum > PHP > Object-oriented programming
lordgch
Np mamy klase

class klasa

która posiada konstruktor

function klasa($nazwa){
echo nazwa
}

co się stanie jeśli w kodzie wywołamy taką instrukcję?

new klasa($nazwa);

wywołany zostanie konstruktor? przeciez nie został stworzony zaden obiekt klasy
mike
Cytat(lordgch @ 21.06.2008, 07:57:54 ) *
Np mamy klase

class klasa

która posiada konstruktor

function klasa($nazwa){
echo nazwa
}
Kiedyś by tak było. Teraz (w PHP5) konstruktor definiuje się tak:
  1. <?php
  2.  
  3. class klasa {
  4.  
  5. pblic function __construct() {
  6. // konstruktor
  7. }
  8. }
  9.  
  10. ?>


Cytat(lordgch @ 21.06.2008, 07:57:54 ) *
co się stanie jeśli w kodzie wywołamy taką instrukcję?

new klasa($nazwa);


wywołany zostanie konstruktor? przeciez nie został stworzony zaden obiekt klasy
Oczywiście, że został stworzony. Po prostu nie został zapisany w żadnej zmiennej.
A to różnica.
Czyli konstruktor się wykona, obiekt zostanie stworzony.
dr_bonzo
...utworzony i od razu zostanie usuniety [mozesz dopisac sobie destruktor i to sprawdzic]
php1983
Cytat(dr_bonzo @ 21.06.2008, 08:36:51 ) *
...utworzony i od razu zostanie usuniety [mozesz dopisac sobie destruktor i to sprawdzic]


E... nieprawda. Zostanie usunięty dopiero jak się wykona do końca tongue.gif A jak w kostruktorze umieścisz swój program...?
mike
Cytat(php1983 @ 6.08.2008, 12:56:36 ) *
E... nieprawda. Zostanie usunięty dopiero jak się wykona do końca tongue.gif A jak w kostruktorze umieścisz swój program...?
Chyba nie rozumiesz kontekstu.
Obiekt zostanie utworzony a po tym usunięty. A to czy sobie coś się stanie podczas konstruowania obiektu to nie ma żadnego znaczenia.
Sedziwoj
Cytat(mike @ 6.08.2008, 13:00:59 ) *
A to czy sobie coś się stanie podczas konstruowania obiektu to nie ma żadnego znaczenia.


To nie do końca prawda, tak powinno być, ale ludzie różne rzeczy pakują do konstruktorów. Bo że utworzy plik, wyświetli coś na ekranie, zmodyfikuje zmienną globalną jednak ma znaczenie.
(ale to tylko tak dopowiadam, bo nie o to chodziło w temacie)
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.