Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Вернуть ошибку и false
спасибо за ответ!Но все таки в codeigniter как-то можно напрямую получать ошибку и false
я даже не знаю как они это сделали.
----- $i = 0;
$i = $i++ + ++$i; ?
EuGen
Отправлено: 04 Мая, 2011 - 22:21:23
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Для того, чтобы вернуть два значения их нужно преобразовать в структуру. Другого способа нет, так как само понятие функции подразумевает возвращение одного единственного результата (или, как частность, не возвращение ничего)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
OrmaJever
Отправлено: 04 Мая, 2011 - 22:44:23
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
grefon
Отправлено: 05 Мая, 2011 - 03:36:25
Частый посетитель
Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010
Помог: 32 раз(а)
Так а Вы сделайте $error глобальной переменной и в функции возвращайте только false. Но это только если структура скрипта позволяет.
----- ____________________________________________________________________
Ну как то так, наверное. http://grefon[dot]com
EuGen
Отправлено: 05 Мая, 2011 - 08:56:53
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
grefon пишет:
Так а Вы сделайте $error глобальной переменной
Плохая идея. В идеальном случае нет вообще никаких side-effect (глобальные переменные, неявное изменение параметров функций и т.п.). Очень рекомендую никогда не использовать глобальные переменные.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
OrmaJever
Отправлено: 05 Мая, 2011 - 10:29:01
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Ещё тогда вариант передавать переменю по ссылке
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Stierus
Отправлено: 05 Мая, 2011 - 10:36:47
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
используйте исключения что бы передавать сообщения об ошибках. У функции должны быть строго определены параметры и ответы. У одной ф-и может быть лишь 1 тип ответа - булевое значение, массив или строка - не важно, важно , что не в функции не должно быть кейсов, когда отдаются разные типы данных (в одном случае возвращается массив, а если ошибка - то false - это плохо, при ошибке должен происходить throw)
throw new Exception('в логине недопустимые символы');
}
}
//блок, использующий ф-ю:
try{
$user= login();
}
catch(Exception $exception){
$message=$exception->getMessage();
//Сам факт того, что мы тут оказались говорит о ошибке
}
в нормальных системах работает эта схема + исключения разных типов (от exception наследуются AuthException, DbException и тд - что бы можно было разные исключения отлавливать на разных уровнях)
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
OrmaJever пишет:
Ещё тогда вариант передавать переменю по ссылке
И это тоже side-effect (я это и имел ввиду, говоря о неявных изменениях параметров). Переменные и так давно уже по ссылке передаются, вместо того, чтобы копироваться в локальный стек функции.
Правильнее всего предлагает Stierus, вот только думаю, что не скоро еще автор темы дойдет до прочтения о правильной обработке исключений.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
jonston
Отправлено: 05 Мая, 2011 - 11:33:37
Посетитель
Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.