ФорумПрограммированиеPHP для идиотов → Что Я, %username% ненавижу в ПХП

Что Я, %username% ненавижу в ПХП

  • Абырвалг

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

    Spritz 12 мая 2011 г. 15:54, спустя 17 минут 15 секунд

    баян
    Спустя 28 сек.
    нехуй делать тыщу вложенных операторов, это отнюдь не прибавляет в читабельности
  • master

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

    Spritz 12 мая 2011 г. 15:57, спустя 2 минуты 53 секунды

    Абырвалг, а ты бы как сделал?

    я бы

    print
    switch ($foo){
    case 1: 'uno'; break;
    case 2: 'dos'; break;
    default: 'tres';
    };
    не всё полезно, что в swap полезло
  • Абырвалг

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

    Spritz 12 мая 2011 г. 16:08, спустя 11 минут 19 секунд

    типа того или массивом
  • master

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

    Spritz 12 мая 2011 г. 16:26, спустя 17 минут 5 секунд

    Абырвалг, но "типа того" в пыхе не работает, а массивом не получится вариант по умолчанию
    не всё полезно, что в swap полезло
  • master

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

    Spritz 12 мая 2011 г. 23:10, спустя 6 часов 44 минуты 28 секунд

    http://wiki.theory.org/YourLanguageSucks#PHP_sucks_because:
    не всё полезно, что в swap полезло
  • Абырвалг

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

    Spritz 25 августа 2011 г. 0:11, спустя 104 дня 1 час 1 минуту

    Не то, что бы я ненавижу, но не хватает тайпхинтинга для массивов объектов ClassName[], InterfaceName[].

    // то есть можно так
    setComment(CommentInterface $comment)
    // или так
    setComments(array $comments)
    // но нельзя так
    setComments(CommentInterface[] $comments)
  • phpdude

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

    Spritz 25 августа 2011 г. 0:38, спустя 26 минут 51 секунду

    но не хватает тайпхинтинга для массивов объектов ClassName[], InterfaceName[].

    юзай пхпшторм.

    позволяет делать вот такие штуки

    /**
    * @param int $limit
    * @param int $offset
    * @return Flora_Collection|Flora_Model_Geo_Continent[]
    */
    public function getContinentsList($limit = 100, $offset = 0)
    {
    return $this->call(self::API_CONTINENTS, array("limit" => (int) $limit, "offset" => (int) $offset));
    }
    Спустя 54 сек.
    ну и соответственно к резалту этой функции можно образаться как к обхекту заведомого типа.

    ну и если его итерировать, то он шторм подскажешь что элемент итерирования - нужного типа.
    Спустя 15 сек.
    а так, пхп - гавно - саморазумеется :-)
    Сапожник без сапог
  • Абырвалг

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

    Spritz 25 августа 2011 г. 0:53, спустя 14 минут 55 секунд

    не-не, мне не для ретурна, а что б убедиться, что аргумент такого-то типа
  • phpdude

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

    Spritz 25 августа 2011 г. 1:03, спустя 10 минут 32 секунды


    не-не, мне не для ретурна, а что б убедиться, что аргумент такого-то типа
    ну тип валидации на стороне пхп конечно нет, но можешь параметром вписать это в док описание - хотя бы ИДЕ проверит))) хотя бы так - "от дурака" так сказать :)
    Сапожник без сапог
  • Ivan

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

    Spritz 25 августа 2011 г. 4:30, спустя 3 часа 26 минут 26 секунд

    И так - что я ненавижу не люблю в пхп:
    function test() {
    return 'testtest';
    }

    print test("blablabla");


    1. Зачем писать function test() {, когда можно написать function test {
    2. test("blablabla"); хотелось бы писать как test "blablabla"; (как echo "blablabla" - в php много лишних скобок)
    3. В php возврат результата функции по умолчанию не заложен - приходится писать return

    Примерно как бы мне хотелось:
    function test {
    'testtest'
    }

    print test(); # результат testtest

    function test {
    $request = get_arguments()[0];
    print $request;
    }

    test "blabla"; # результат blabla

    function test {
    list($var1, $var2) = get_arguments();
    print $var1**$var2;
    }

    test(2,3); # результат 8

    function test {
    list(int $x, array $arr) = get_arguments(); # array $arr поглотило все остальные аргументы после int $x
    foreach ($arr as $_) {
    print intval($_)**$x . '|';
    }
    }

    test(2, 1, 2, 3); # результат 1|4|9|


    вот такие вот у меня фантазии
  • Nyaah

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

    Spritz 25 августа 2011 г. 10:46, спустя 6 часов 15 минут 53 секунды

    бред, фантазии у тебя какие-то странные
    небось каким-нибуть питоном или руби навеяло? =)
    Work, buy, consume, die
  • vasa_c

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

    Spritz 25 августа 2011 г. 11:27, спустя 41 минуту 34 секунды

    Не то, что бы я ненавижу, но не хватает тайпхинтинга для массивов объектов ClassName[], InterfaceName[].

    Это же ему бедному при каждом вызове все эти массивы прошерстить придётся.
  • phpdude

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

    Spritz 25 августа 2011 г. 11:31, спустя 3 минуты 27 секунд

    Ivan, ну и хуйня у тебя мысли. это не перл, очнись. ну и "это не перл! и слава богу вашу мать"
    Спустя 29 сек.
    у перла до неприличя расширен синтаксис неприличия
    Сапожник без сапог
  • Абырвалг

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

    Spritz 25 августа 2011 г. 12:04, спустя 33 минуты 41 секунду

    vasa_c, ниче страшного, в яве ж есть такая хуйня. А пых схож на яву, и явовские технологие в пых перетягиваются. А так я это руками сам делаю.
  • Nyaah

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

    Spritz 25 августа 2011 г. 17:06, спустя 5 часов 1 минуту 12 секунд

    Да, иметь типизированные коллекции на уровне языка, типа Vector.<> в AS3 или std::vector<> из C++ было бы круто
    Work, buy, consume, die

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