![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam mały problem z tworzeniem skryptów w sposób obiektowy, trochę teorii a raczej dość dużo teorii jaką znalazłem w necie na ten temat przeczytałem i teraz proszę o pomoc w praktyce. Mam taki oto kod i komentarze w nim z wyjaśnieniami co ma co robić, jednak coś to nie chce działać tak jak ja bym chciał, no i nie wiem czy to dobrze wszystko pisze? Czy dobry styl i tok myślenia mam co do tworzenia obiektów i klas oraz ich metod?
to taki kompletnie bezsensowny skrypt, na którym chciałem sprawdzić czy coś z tego wszystkiego co poczytałem mi zostało, proszę o jakieś ukierunkowanie mnie, co robie źle? nad czym popracować? na co zwracać największa uwagę? No i co można by zmienić w tym czymś co napisałem aby to działało w miarę logicznie. Wydaje mi się, że dobrze to opisałem i łatwo dojdziecie do tego jak ma działać ta klasa, jeśli ten kod można nazwać rzeczywiście klasą. Bo może jednak źle to wszystko zrozumiałem i powinienem patrzyć na to wszystko pod trochę innym kontem? Ten post edytował dawidg87 2.02.2008, 09:24:43 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 1 Dołączył: 14.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Troszkę bez sensu __set zastosowałeś - taki kod się automatycznie wykonywuje przy $obiekt -> zmienna = $wartość;. Zastosowanie logiczniejsze to np.
Krótko mówiąc - __set można używać do sprawdzania poprawności danych. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
hmmmm ciekawa ta funkcja is_numeric(), dopiero teraz dowiedziałem się o jej istnieniu tylko zastanawia mnie poco tam przed jej zdeklarowaniem umieściłeś ten wykrzyknik? W więc jeszcze raz czyli funkcji __set do czego najczęściej się używa? No bo przykład ciekawy, sprawdzenie poprawności danych, czyli nic nie szkodzi o rozbudowanie ją o możliwość sprawdzenia kolejnych parametrów obiektu? np.
To tylko taki głupi przykład, no ale logicznie do tego podchodząc czy tak może być? Jeśli tak to już pomału zaczynam łapać. Jak by ktoś mógł jeszcze podać jakieś inne zastosowania __set było by fajnie? A co powiedzie o reszcie mojego kodu który wypociłem w pierwszym poście? Na razie go nie poprawiam, już wiem, że bezsensownie użyłem funkcji __set, no ale co dalej, tam można by zmienić na lepsze i dlaczego? Ten post edytował dawidg87 3.02.2008, 11:12:25 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 349 Pomógł: 72 Dołączył: 22.01.2008 Skąd: Wadowice/Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wykrzyknik służy do negacji wartości.Użyty jest po to by sprawdzić,że jeśli argument nie jest liczbą wypisać komunikat. aha ale używa się go tylko przy schemacie IF...DIE...ELSE ? gdyby go nie było działanie było by odwrotne? znaczy gdyby była liczba wykonała by się instrukcja DIE a gdyby to nie była liczba instrukcja ELSE? czy źle myślę? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 349 Pomógł: 72 Dołączył: 22.01.2008 Skąd: Wadowice/Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
ogolny schemat instrukcji if...else jest taki :
if(warunek) { instrukcje wykonywane gdy warunek prawdziwy } else { instrukcje wykonywane gdy warunek fałszywy }
można by było zapisać także w taki sposób
A operatora negacji(!) można używać tam gdzie występują zmienne typu logicznego.Najcześcięj jest on używany właśnie w przypadku sprawdzania warunków. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czyli:
zwróci nam TRUE, a:
zwróci FALSE... możesz to sobie w myślach zamienić na isn't_numeric()... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ok dzięki panowie. Poczytałem i w miarę rozumiem. Doszedłem też do wniosku, że lepiej wezmę się za jakiś konkretny projekcik niż wymyślanie czegoś takiego. Więc zrobię sobie system logowania oparty o sesje, bazę mysql, obiektowe php.
I teraz pytanie doczytałem się, że przy mysql w wersji 5 i nowszej jest już wbudowana klasa o nazwie mysqli (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) można tego używać normalnie w skryptach? bez konieczności tworzenia swojej własnej klasy db? Czy raczej to jest mało wygodne? No bo skoro mysqli istnieje to chcąc pisać skrypty obiektowe, bazę danych mamy już załatwioną(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jestem tylko ciekaw jak ta klasa jest zbudowana i jakie posiada możliwości, i w jaki sposób najbezpieczniej przechowywać dane do połączenia z bazą? Może config.php albo config.ini albo hmmm jakaś inna propozycja? np. coś w tym stylu: plik config.php
plik index.php
Czy takie rozwiązanie jest dobre? No i jeszcze pytanko do tej @ którą niby powinno się dawać w linijce kodu który ustala połączenie z bazą danych. Opisano to jako operator tłumienia błędów. Tylko nie za bardzo rozumie co to znaczy? Mógłby ktoś przybliżyć powód zamieszczania tego operatora i co on konkretnie robi? I czy musi być umieszczony? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
imo zapisy typu
uważam że są nie fajne, Naucz sie raczej korzystać ze zmiennych prywatnych i odpowiadających im getterów i setterów Kod zyska na przejrzystości i bezpieczeństwie przypadkowego użycia przypisań |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 349 Pomógł: 72 Dołączył: 22.01.2008 Skąd: Wadowice/Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
@ to tak jak powiedziałeś operator tłumienia błędów.Jeżeli będziesz miał zapis :
to otrzymasz komunikat błędu dzielenia przez zero. Natomiast taki zapis :
nie pokaże ci błędu związanego z dzieleniem przez zero. @ używana jest w sytuacjach gdy może się pojawić jakis nieprzewidziany błąd a ty chcesz uniknąć wyświetlenie tego błędu to stosujesz @. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
No i jeszcze pytanko do tej @ którą niby powinno się dawać w linijce kodu który ustala połączenie z bazą danych. Opisano to jako operator tłumienia błędów. Tylko nie za bardzo rozumie co to znaczy? Mógłby ktoś przybliżyć powód zamieszczania tego operatora i co on konkretnie robi? I czy musi być umieszczony? W zależności od ustawień poziomu raportowania błędów na serwerze, niektóre funkcję mogą zgłaszać błędy lub wiadomości, chociaż poza tym będą działać poprawnie... ten operator powoduje że te błędy nie będą wysyłane do klienta (przeglądarki)... Ma to też wady: w przypadku zastosowania tego operatora debugowanie skryptów może być trudniejsze bo możemy stracić poł dnia na szukanie błędu o którym funkcja by nas poinformowała gdybyśmy tego operatora nie zastosowali... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 02:31 |