Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]obiekty, kilka pytań
newboy88
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 17.11.2009

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


Witam jestem tutaj nowy więc witam wszystkich serdecznie.
Proszę o pomoc, mianowicie chciałbym się tak po polsku dowiedzieć czym się różni takie odwołanie do klasy
  1. $klasa = new klasa;
  2. $klasa->obiekt();

od takiego
  1. klasa::obiekt();

czym się różni i kiedy należy stosować?
i jeszcze jedno pytanie; w wewnątrz klasy odwołanie do zmiennej znajdującej się w klasie w taki sposób
  1. $this->zmienna;

czym się różni od tego (oraz kiedy które stosować)?
  1. self::zmienna;

bardzo proszę o pomoc, pozdrawiam serdecznie
Go to the top of the page
+Quote Post
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


1.
  1. $klasa = new klasa;
  2. $klasa->obiekt();


to utworzenie egzemplarza obiektu klasy klasa i przypisanie go do zmiennej $klasa

2.
  1. klasa::obiekt();


to wywołanie statycznej metody obiekt() klasy klasa

Cytat
czym się różni i kiedy należy stosować?


- 1. różni się od 2. tym, że w 2. nie jest tworzony egzemplarz obiektu klasy klasa

1. należy stosować, jeśli potrzebujemy egzemplarz obiektu klasy klasa
1. należy stosować, jeśli chcemy wywoływać niestatyczne metody
2. należy stosować, jeśli nie potrzebujemy egzemplarza obiektu klasy klasa
2. należy stosować, jeśli chcemy wywoływać statyczne metody

3.
  1. $this->zmienna;


3. dla metod niestatycznych, wskaźnik $this służy do dostępu do pól i metod wewnątrz obiektu

4.
  1. self::zmienna;


4. dla metod statycznych, ponieważ metody statyczne nie posiadają wewnętrznego wskaźnika obiektu ($this) musimy użyć operatora zasięgu :: aby móc dostać się do pól (tylko statycznych) i stałych klasy

ps. poczytaj o programowaniu obiektowym, znajdziesz osobne forum na ten temat na forum.php.pl

Ten post edytował darko 18.11.2009, 01:32:51
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.09.2025 - 21:38