Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> $this / self:: i plik 0
kicaj
post 24.12.2005, 03:04:12
Post #1





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Mam o to taki fragment konstruktora:
  1. <?php
  2. public function __construct( $strFileName )
  3. {
  4. if( file_exists( $strFileName ) === true )
  5. {
  6. return true;
  7.  
  8.  
  9. }
  10. else
  11. {
  12. $this -> __construct( 'file.html' );
  13. $this -> abc = 'Lorem Ipsum...';
  14. //self::__construct( 'file.html' );
  15. //self::__set( 'abc', 'Lorem Ipsum...' );
  16. }
  17. }
  18. ?>

Pytania:
1. Ktory sposob mam wybrac z $this czy self:: i dlaczego?
2. Czytalem ze funkcje do zarzadzania plikami maja problem z plikiem kiedy ten nazywa sie poprostu 0, takze nalezy uzyc trojargumentowego porownania w celu wyeliminowania bledu, w tym przypadku jednak to nie dziala, dlaczego?

Ten post edytował kicaj_ 24.12.2005, 03:04:59


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
bela
post 24.12.2005, 04:54:23
Post #2


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Ad 1. $this, radzę poczytać sporo o OOP i metodach statycznych, bo kłaniają się podstawy ;]


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post 24.12.2005, 20:38:06
Post #3





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

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


Do metod statycznych zawsze self::, chociarz $this chyba tez dziala, ale kod jest mniej czytelny/zrozumialy.

Konstruktor nie moze nic zwracac!!! (return true;)


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
bela
post 24.12.2005, 21:09:18
Post #4


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


dr_bozno, $this nie działa w metodach statycznych, bo niby jaki obiekt wskazuje wtedy $this?


--------------------
Go to the top of the page
+Quote Post
NuLL
post 24.12.2005, 23:49:48
Post #5





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


bela_666 ma rację smile.gif

Co do pytania drugiego - co wogóle porownywac ?

  1. <?
  2. if(file_exists('plik'))
  3. {
  4. }
  5. ?>

Ja nie znam takiego wymogu.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
dr_bonzo
post 25.12.2005, 13:44:10
Post #6





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

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


bela_666:
kicaj_ pytal o sposob WYWOLYWANIA metod.

W javie mozna wywolywac metody statyczne Klasa.metoda() lub Obiekt.metoda() / this.metoda() z tym ze Eclipse poleca pierwszy sposob.
Dla php: "chociarz $this chyba tez dziala"
CHYBA -- bo nie sprawdzalem.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
kicaj
post 25.12.2005, 14:39:07
Post #7





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


W tym przypadku obie (self i this) dzialaja poprawnie. Jednak nie sa to metody statyczne wiec uzyje $this.

P.S. Konstruktor wzraca true tylko w celu zobrazowania przykladu:)


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
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: 26.06.2025 - 03:25