![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Witam mam oto taki kod php:
Jest to dosłownie odrobinę zmieniona klasa Exception. Wywołanie błędu: Wywołuję go specjalnie zmieniając nazwę użytkownika dostępu do bazy na niepoprawną. Pojawia mi się błąd: Cytat Catchable fatal error: Argument 1 passed to Error::__construct() must be an instance of string, string given, called in D:\WWW\orglee\class\class_mysql.php on line 70 and defined in D:\WWW\orglee\class\class_exception.php on line 13 Co jest nie tak ? Dlaczego wyświetla mi ten błąd i co on oznacza ? Na googlach znalazłem tylko ten błąd w CMS Joomla (błąd dotyczył template'a) a rozwiązania błędu nie było. |
|
|
![]() |
![]()
Post
#2
|
|
Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
a to przypadkiem nie powinno dziedziczyć po Exceptions, tak jak tutaj http://phpedia.pl/wiki.php?title=Wyj%C4%85tki ?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
No niby tak ale mam nadzieję,
że można zrobić obsługę wyjątków bez rozszerzania klasy Exception, poza tym muszę przekazać do klasy 3 wartości a nie jak jest domyślnie 2 z tego co wiem to tam tylko metoda __toString nie jest finalna i można ją napisać na nowo. edit> No i rozszerzyłem klasę Exceptions - pokazuje mi się ten sam błąd co w temacie. (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif) Ten post edytował orglee 13.02.2007, 11:11:20 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 18.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
1 Rzucać możesz tylko wyjątkami czyli klasa musi dziedziczyć po Exception
2 Wywal typowanie zmiennych w parametrach metod. 3 W potomkach exception możesz przeciążyć konstruktor i dodać sobie 3ci parametr |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego mam wywalić typowanie ?
W programie którego używam do pisania skryptów jest to czasem dosyć pomocne. Zwłaszcza jeśli zapomnę jakiego mam użyć parametru. Wywaliłem typy i zaczął coś działać wreszcie. To znaczy że w ogóle przy konstruowaniu klas nie mogę definiować typów zmiennych ? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 0 Dołączył: 18.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem dokładnie na czym to polega i dlaczego tak jest ale przy typowaniu podstawowych typów zmiennych (int bool string ...) wyłażą takie kwiatki, może ktoś inny będzie mądrzejszy i sypnie jakimś wyjaśnieniem.
Dla programu i jego podpowiedzi jakie typy są wymagane powinny wystarczyć komentarze /** * opis metody * * @param typ $nazwa_zmiennej */ Ten post edytował DjKermit 13.02.2007, 14:58:50 |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Odkopie troszke. Nie, nie można. Pewnie zauważyłeś, że nie ma także deklaracji co wzraca dana funkcja. To jest imho grzech php.
w PHP5 zostało wprowadzone zarzucanie parametru jako dany obiekt, np.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 16:02 |