![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 475 Pomógł: 0 Dołączył: 1.04.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
niechce przekazywać caly czas zmiennych.
mam np.
i jak ja mam przekazywać do kazdej funkcji jakies tam zmienne to chyba malo logiczne rozwazanie. myslalem zeby je ustawic jako super globalne. i ja chce bez global przekazywanie tak jak napisal NetJaro tez odpada Ten post edytował acztery 4.08.2006, 19:48:32 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 151 Pomógł: 0 Dołączył: 20.02.2005 Skąd: Poznań Ostrzeżenie: (30%) ![]() ![]() |
ee tak ja mowisz to sie nie da ... przynajmniej z tego co mi wiadomo i o ile dobrze zrozumialem
![]() -------------------- ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 475 Pomógł: 0 Dołączył: 1.04.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie słyszałem o takich możliwościach.. ale prawde mówiąc ciekawy jestem, jak można takie coś zrobić.. o ile można.
Ew. można utworzyć funkcję która będzie tworzyła nową zmienną i nadawała jej daną wartośc, ale to jest jeden z gorszych pomysłów (już lepszy jest mój i mike_mech'a). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
tez nie slyszalem .. ale jest jedeno rozwiazania zmienne ktore maja byc widoczne we wszystkich klasach ustawic je jako superglobalne ale czy to ma snes nie wiem .. wolal bym to miec zrobione tak juz bardziej "profesjonalnie" pod php5
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 151 Pomógł: 0 Dołączył: 20.02.2005 Skąd: Poznań Ostrzeżenie: (30%) ![]() ![]() |
ee ustawianie globali nie jest polecane z tego co sie orientuje . przynajmniej nie poleca sie tego .
-------------------- ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
ja nie chce urzywac slowa global. dam te zmienne do SUPER GLOBALNE.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 151 Pomógł: 0 Dołączył: 20.02.2005 Skąd: Poznań Ostrzeżenie: (30%) ![]() ![]() |
ale to na to samo wychodzi ... uzywajac OOP nie powinno uzywac sie globali (czy tez super globali) poniewaz to dehermetyzuje klasy ....
-------------------- ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
zrobie tak jak pisal NetJaro chodz tak moglem zrobic dawno temu szukalem innego rozwiazania
widzicie tu jakis blad:
wywolane
ale cos nie dziala Ten post edytował acztery 5.08.2006, 11:19:24 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 30.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możesz przekazywać te 2 parametry do konstruktora, wtedy taki obiekt utworzyłby sobie swoją ich kopię jako składniki prywatne i na nich pracował.
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 151 Pomógł: 0 Dołączył: 20.02.2005 Skąd: Poznań Ostrzeżenie: (30%) ![]() ![]() |
a wyzuca Ci jakis error ?
-------------------- ![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
nie, nic nie pokazuje wlasnie...
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
acztery - zrób tak jak mówi KG- czyli użyj konstruktora i po sprawie.
Zmień też zmienne wewnątrz klasy na private bo zmienne public w klasie aż w oczy rażą ![]() Ideą stojącą za OOP jest ograniczanie dostępu do wszystkiego co się da, tak aby móc jak najmniej zapsuć. //oczywiscie jest to uproszczony opis Klasa ma mieć swoje API, za pomocą którego możesz nią manipublować. Teraz to sobie możesz zrobić małe kuku taki jak np:
Jeśli klasa wymaga dostępu do zmiennej to zrób metody dostępowe, które będą kontrolowały aby przypadkiem nie przypisać do zmiennej typu int stringa czy czegokolwiek niezgodnego z twoją wizją. Dobrze że rezygnujesz z superglobali/globali itd. W OOP nie powinieneś tego stosować - obiekt ma dostać pewne parametry, przetworzyć je i coś zwrócić. Pamatetry muszą być przekazywane jawnie do obiektu, tak aby niezależnie od otoczenia w którym się znajdzie zawsze zwrócił to samo. Jeśli obiekt jest zależny od jakiejś zmiennej typu global to ten warunek nie jest spełniony. Wiadomo, że czasem oznacza to więcej pisania - można się zastanawiać po co tworzyć kopię zmiennej w obiekcie, gdy mamy ją już w skrypcie zdefiniowaną - ale tu chodzi o bezpieczeństwo - za pół roku coś tam będziesz zmieniał i usuniesz/zmienisz nazwę tej zmiennej, a to spowoduje konsekwencje, których nie można przewidzieć. Lepiej napisać trochę więcej, ale zaoszędzić czas przy poprawkach i zmianach. Ten post edytował athabus 5.08.2006, 12:26:25 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
a mam takie pytanie dotyczace deklarowanie zmiennych w php5
wszystko mam public ale nie wiem czy nie potrzebnie jak zmienie getMeUID na private a reszte na static to kapa error o braku dostpeu do obiektu czy metody.... |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
acztery - nie wiem czy dobrze zrozumiałem zamysł, dla jakiego stworzyłeś ten program, ale chyba coś pokręciłeś ze zmiennymi itd.
Na początek wstaw sobie coś takiego na początku skryptu - dzięki temu będą wyświetlane wszelkie ostrzerzenia itp (domyślnie php nie wyświetla wszystkiego. Oczywiście w wersji ostatecznej skryptu lepiej to usunać, ale przy projektowaniu jak najbardziej się przydaje. W twoim przykładzie serwer zwrócił aż 4 ostrzeżenia. Klasę możesz napisać np. tak (pozwoliłem sobie nieco zmienić nazewnictwo zmiennych/funkcji, bo konwencja, którą przyjmujesz trochę jest myląca. Dalej nie wiem od czego pochodzi skrót meUID czy meSES ale je zostawiłem bez zmian).
//edit PS. Oczywiscie można również użyć metod magicznych __get i __set do dostępu do zmiennych Ten post edytował athabus 6.08.2006, 10:57:47 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 03:46 |