Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dostęp do klasy poprzez funkcje innej klasy, ??
sztosz
post
Post #1





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

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


Mam sobie klasę:
  1. <?php
  2.  
  3. //klasa jest zawsze uzywana i tylko raz do obróbki $_POST i wszystko zapisuje w ta
    blicy $tablicaA
  4. class A {
  5.  
  6. public $tablicaA;
  7.  
  8. public function funkcjaA(){
  9. //funkcja do wyciągania odpowiedniej zmiennej z $tablicaA;
  10. }
  11.  
  12. }
  13. //zainicjujemy ją
  14.  
  15. $classA = new A();
  16.  
  17. ?>


I jak teraz z drugiej klasy dostać się do tej pierwswzej? Czy to będzie działać, i dlaczego nie i co zrobić z zasięgiem zmiennych?

  1. <?php
  2.  
  3. class B {
  4.  
  5. private $b;
  6.  
  7. public function funkcjaB(){
  8. $this->b = $classA->funkcjaA();
  9. }
  10.  
  11. }
  12. ?>


I czy
  1. <?php
  2. A::funkcjaA()
  3. ?>
jest jakimś rozwiązaniem, a jeżeli tak to jak to działa?

Następne małe pytanko to, czy jeżeli klasa się nazywa 'JakaśKlasa' to czy fukcja 'uruchomiana" automatycznie przy stworzeniu obiektu może się nazywać 'jakaśKlasa' czy musi 'JakaśKlasa' ?

________
PS: OOP jest dla mnie dosyć nowym zagadnieniem i nie za bardzo wiem jak rozwikłać zagwozdki igdzie ich szukać (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) a manual lekko mi miesza w głowie w tym temacie (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
M4chu
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


Tak, statyczne metody wlasnie po to sa, nie ma potrzeby posiadania obiektu bo przeciez nawet z niego nie kozystamy: NazwaKlasy::nazwaMetody();
Co do hermentyzacji to i tak i nie, niektore pola nie powinny wogole wychodzic poza obreb klasy (np haslo uzytkownika), inne natomiast mozna modyfikowac/poierac zapomoca getterow i setterow.
Przewaznie konstruktor jest publiczny, zeby moznabylo gdziekolwiek uzyc new Klasa(). Konstruktor jaknajbardziej moze byc prywatny, wtedy nie mozemy w skrypcie zrobic new Klasa(), tylko musimy skozystac z metody statycznej (no bo nie mamy obiektu w skrypcie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ), ktora to ten obiekt stworzy - patrz: Singleton.

pozdro
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 01:27