ФорумПрограммированиеPHP для идиотов → Выходные условия в PHP

Выходные условия в PHP

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 15:51

    Просто хотел спросить что вы думаете по поводу.
    Да, пых динамически типизирован, но у меня иногда такое ощущение, что мне недостаёт типизированных выходных условий. Для тех кто не понимает моего бреда, пример
    function setUser(User $user); <- входное условие
    function getUser(): User; <- выходное условие
    Я не особо парюсь, но я ж говорю есть только ощущение, может у кого есть реальные потребности или типа того?
    Спустя 167 сек.
    а, забыл сказать, я ж чё спросил. Мы ж входным условием как бы сверху устанавливаем абстракцию, а внизу ж получается нет никакого контроля…. Короче, вот о чём я сейчас подумал ))
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 31 июля 2010 г. 16:16, спустя 24 минуты 50 секунд

    kostyl, Мэтт Зандстра неколько раз в книге упоменал такую потребность. Да и она разумтся есть. Раз есть интерфейсы и абстрактные классы, да и вообще наследование, то и четкиое типизирование выхода тоже должно быть.
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 31 июля 2010 г. 16:37, спустя 21 минуту 6 секунд

    всегда прикалывало, что в трай-кэтч это есть
       try {
    throw new Exception('Some Error Message');
    } catch (Exception $e) {
    var_dump($e->getMessage());
    }
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 16:40, спустя 3 минуты 26 секунд

    SpartakuS, дело в том что её именно нет. Ты пишешь
    $user = UserFinder::find($userId);
    Как ты клиенту переменной $user смощешь описанием метод UserFinder::find гарантировать что $user будет типа User, а не null - ом например.
    В php мы вынуждены проверять, ибо не уверены.
    $user = UserFinder::find($userId);
    if ($user) - в самом простом случае. Да блин и не только в php скорее всего.
    А проверяем потому, что мы только "на словах", тобишь в комментариях к коду можем оговорить этот момент, и на крайняк вернуть, при условии отсутствия пользователя NullObject типа User
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 31 июля 2010 г. 16:48, спустя 7 минут 25 секунд

    SpartakuS, я тебя не правильно понял, ты говоришь что потребность есть, а я подумал что решение есть
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 31 июля 2010 г. 16:56, спустя 8 минут 23 секунды

    SpartakuS, я тебя не правильно понял, ты говоришь что потребность есть, а я подумал что решение есть

    именно так :). Я просто согласился и сказал, что подобную мысль уж озвучивал Зандстра.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!