![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 7.06.2006 Skąd: Coventry, UK Ostrzeżenie: (0%)
|
cześć,
mam interfejs:
i implementację w MySQLUserDAO. testuję to sobie i dostaję taki błąd: Cytat Argument 1 passed to MySQLUserDAO::findUsersByFornameSurnameOrEmail() must be an instance of string, string given, called in (...) wywołanie w teście wygląda tak:
czy te typy argumentów to muszą być typy zdefiniowane przeze mnie, a nie wbudowane w PHP? Ten post edytował Can I 20.04.2007, 19:18:53 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 23.09.2006 Ostrzeżenie: (0%)
|
Zmienna $queryStr musi być obiektem klasy string inaczej nie wypali
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 7.06.2006 Skąd: Coventry, UK Ostrzeżenie: (0%)
|
no a nie jest? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
czyli zgaduję, że w PHP5 nie ma jakiegoś auto-boxingu i wbudowanej klasy string czy String, czyli sam bym sobie musiał zdefiniować |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 23.09.2006 Ostrzeżenie: (0%)
|
Sam chciałem tak kiedyś zrobić ale też się nie dało więc doszedłem właśnie do takiego wniosku jak Ty.
Możesz w funkcji sprawdzać typ zmiennej co jest lepsze niż tworzenie nowej klasy dla stringów (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Taki zapis
oznacza, że do metody przekazany ma zostać obiekt typu string. W PHP nie ma "wbudowanych" obiektów, tak jak ma to miejsce na przykład w C#. W podanym przez Ciebie przykładzie, do metody przekazujesz łańcuch znaków, a nie obiekt string i przez to zgłaszany jest błąd. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 7.06.2006 Skąd: Coventry, UK Ostrzeżenie: (0%)
|
rozumiem
|
|
|
|
Post
#7
|
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%)
|
I wymuszac da sie, jak pamietam, tylko obiekty i tablice.
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%)
|
dobrze pamietasz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
I to jest w manualu, więc nie rozumiem czemu od razu nie odesłaliście...
http://www.php.net/manual/en/language.oop5.typehinting.php" title="Zobacz w manualu PHP" target="_manual Cytat PHP 5 introduces Type Hinting. Functions are now able to force parameters to be objects (by specifying the name of the class in the function prototype) or arrays (since PHP 5.1).
|
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%)
|
Sedziwoj: w manualu wszystko jest ;-)
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 16:41 |