Avery
Освоившийся
Дата регистрации:
05.05.2013 15:48:09
Сообщений: 37
Argument 1 passed to User::Auth() must be an instance of string, string given
Код функции Auth в классе user.
public function Auth(string $login, string $password)
{
if (isLoginExist($login)) return "badlogin";
$result = $this->db->getRow("SELECT * FROM `users` WHERE login='$login' and password='$password'"
if (empty($result)) return false;
return true;
}
Вызов:
$user = new User();
echo $user->Auth('test', 'test');
Это нормально вообще?
Error 404
Продвинутый
Дата регистрации:
28.07.2013 16:04:47
Сообщений: 48
(string $login, string $password) это вообще как?
Avery
Освоившийся
Дата регистрации:
05.05.2013 15:48:09
Сообщений: 37
php позволяет типизировать аргументы функции в Си стиле...
Error 404
Продвинутый
Дата регистрации:
28.07.2013 16:04:47
Сообщений: 48
без взятия их скобки?
Avery
Освоившийся
Дата регистрации:
05.05.2013 15:48:09
Сообщений: 37
Взятие их в скобки это привидение типов, а не типизация.
Avery
Освоившийся
Дата регистрации:
05.05.2013 15:48:09
Сообщений: 37
Спасибо. Объяснили на другом форуме. Первый аргумент должен быть не строкой а объектом класса string, как и второй.
В php можно уточнить только или имя класса или тип array.
Исправить, соответственно, можно или убрав уточнение или скормив ему объекты класса String.