![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Pod php 4 działa - niestety pod v5 i dopisania static wywala się. Jakieś pomysły ![]() -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A gdzie dopisujesz to static? przed funkcja?
Jesli tak to to sa podstawy OO: funkcja statyczna moze odwolywac sie TYLKO do elementow statycznych KLASY, np
Nie mozesz sie odwolywac do obiektu ($this). -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Akurat podstawy OOP to ja mam i nawet coś więcej
![]() Kod który jest wklejony u góry działa pod php v4 ![]() Jakieś pomysł jak mieć takie coś pod v5 ![]() Ten post edytował null 27.01.2005, 12:15:29 -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
gdzie wpisujesz to static?
![]() podaj dokladny kod ktory ci nie dziala w php5 -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
włąśnie po to jest słowo static przy metodzie, byś nie musiał (a nawet nie mógł) sprawdzać, czy czasem metoda nie została wywołana w obrębie obiektu.
Static wymusza wywołanie z poziomu nazwy klasy, więc jakakolwiek próba odwołania się do słowa $this jest uznawane za błąd już na poziomie parsowania. W php4 pojawiłby się błąd dopiero na poziomie wykonywania, co znacznie utrudniało debuging. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Oki Chłopaki ja się zgadzam
![]() Nie mam kodu żadnego w sumie. Czy jest jakaś metoda aby uzyskać taki efekt w piątce ja w tym kodzie na początku pod v4 (TO DZIAŁA) ![]() -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście, że jest. Nawet dwa bardzo dobre sposoby. Może trzy...
1) Dopisać static przed funkcją i wywalić w ogóle if(isset($this)), czyli wszystko robić przez self. To zależy co ta metoda robi, ale nie przychodzi mi do głowy żaden sensowny przykład, w którym byłby to problem. 2) Jeżeli twoja metoda robi coś kompletnie innego dla wywołania statycznego i nie-statycznego (fuuuuuj!), to zrób z tego dwie metody. To proste - jeżeli coś nijak do siebie nie pasuje, to po co wpychać na siłę? 3) Pewnie nie będzie działać, ale jak chcesz to sprawdź. W PHP5 słowo kluczowe static nie jest obowiązkowe (kompatybilność wstecz, chociaż dla reflection na pewno nie jest to bez różnicy). Więc możesz je wywalić i zobaczyć czy wtedy php przełknie twój kod. Jednak opcji 3 nie polecam, nawet jeżeli działa, bo to po prostu jest zły kod. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.07.2025 - 21:18 |