![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 276 Pomógł: 3 Dołączył: 22.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Pytałem się swego czasu w tym wątku o kontrolę typów danych i zostałem namówiony do jej używania, problem który pojawił się w prawktyce jest następujący:
w klasie bazowej użytkownika mam:
w skypcie pobierającym dane z forumularza mam wywołąnie tego konstruktora w linii numer 6 (listing poniżej). Parser wywala mi taki błąd Kod Fatal error: Argument 2 must be an object of class string in C:\usr\krasnal\www\robotECS\classes\user.php on line 120 Uwaga: tutaj jest to linia numer 3 w listingu wyżej. Dlaczego tak się dzieje mimo tego, że wartości wpisane w pole formularza są stringiem?
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 0 Dołączył: 18.02.2004 Skąd: Knurów Ostrzeżenie: (0%) ![]() ![]() |
Niestety, w php type hinting odnosi się tylko i wyłącznie do obiektów i AFAIR tablic.
Jeśli chcesz mieć dokładniejszą kontrolę typów danych musisz sobie zaimplementować klasy String, Integer, itd. i używać ich zamiast zwykłych stringów i integerów. Ma to swoje wady i zalety, czy chcesz z tego korzystać - przemyśl to sam. |
|
|
![]()
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%) ![]() ![]() |
madit juz ci wyjasnil.
Ja tylko dodam: 1. skoro uzywasz wyjatkow to nie zagniezdzaj tak jakbys ich nie uzywal
uzyskasz mniej zagniezdzen, spowodowanych TYLKO przez kontrole argumentow. 2. Nie przekazuj nie istniejacych zmiennych
najpierw sprawdz czy $_POST[ '...' ] istnieje. -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 276 Pomógł: 3 Dołączył: 22.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
A jest gdzieś jakiś artykuł na te temat? I przy okazji co to są te tablice AFAIR?
@dr_bonzo: sprawdzam czy nie są puste, tutaj by nie zaśmiecać kodu niepotrzebnymi informacjami wyciąłem (jak widać jest tam komentarz: if every field is set ![]() Ten post edytował Aztech 3.01.2006, 21:17:36 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
LOL
AFAIR - As Far As I Remember -- jak pamietam to... http://pl.php.net/language.oop5.typehinting http://www.gadgetopia.com/post/4667 IITYIWHTKU http://home.tiscali.be/lexicon/chat.htm ![]() Ten post edytował dr_bonzo 3.01.2006, 21:25:27 -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 276 Pomógł: 3 Dołączył: 22.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
[OT mode on]
IMHO, LOL, BTW, EOT itp itd ale AFAIR nie znałem ![]() ![]() [OT mode off] EDIT: @dr_bonzo: dzięki za linka uświadamiająco-edukacyjnego ![]() Ten post edytował Aztech 3.01.2006, 21:30:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:32 |