Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> niezgodność typów argumentów metody, error: must be an instance of string, string given - wtf?
Can I
post
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:
  1. <?php
  2. interface UserDAO {
  3.  
  4. public function findUsersByFornameSurnameOrEmail( string $queryStr );
  5.  
  6. }
  7. ?>


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:

  1. <?php
  2. $queryStr = "jan";
  3. $actualUsers = $this->dao->findUsersByFornameSurnameOrEmail( $queryStr );
  4. ?>


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Taki zapis

  1. <?php
  2. public function findUsersByFornameSurnameOrEmail( string $queryStr );
  3. ?>


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 18:17