"PHP" / Говнокод #25591 Ссылка на оригинал

0

  1. 1
$result = array_filter($paths,  fn($v) => in_array($v, $names));

В PHP 7.4 войдут стрелочные функции.
https://habr.com/ru/post/450544/

Запостил: _PHP_ _PHP_, (Updated )

Комментарии (129) RSS

  • а раньше как у них лямблии были?
    Ответить
    • Фигурные скобки и ретурн надо было писать:
      $result = array_filter($paths,  function($v) {return in_array($v, $names);});

      Тоже мне проблема.
      Ответить
      • О боже мой, расскажи мне что еще в этом анальном недоязыке не является проблемой с точки зрения неосилятора
        Ответить
          • В "PHP5.3" сразу было понятно, где массив. Именно поэто у я за "PHP5.3".
            Ответить
            • Просканировал «nmap»-ом, нашёл RCE уязвимость под найденную версию, получил рут-доступ и установил «PHP 5» на твой веб-сервер, проверь.
              Ответить
              • Спасибо, а то у меня была седьмая версия, а как поставить другую я не знаю.
                Ответить
                • Покопавшись в старом пыльном книжном шкафу и достав оттуда древнюю как сам мир распечатку мануала по «Postfix», заодно найдя подшивку журналов «Linux Format» за 2005 год, руководство по «MySQL», неизвестно как попавший туда номер «Игромании» и диск со 101 игрой для «Windows 95», потратил неделю на чтение и обучение, после чего набросал конфиг, нашёл и исправил, задав пару вопросов на «Stackoverflow», десяток ошибок и, заново получив рут-доступ, залил настройки на твой веб-сервер, проверь.
                  Ответить
                  • А книжка фигурнова оттуда часом не выпала?
                    Ответить
                • Книжка на 400 страниц, из них половина картинки и таблицы. Это на месяц максимум чтения

                  https://www.mobt3ath.com/uplode/book/book-27297.pdf

                  Это же не Sendmail с его 2000страничной книгой. Почитал бы да и настроил, линтяй
                  Ответить
              • передал кавычку в качестве имени и сломал нахуй твоеприложение, проверь
                Ответить
  • Им пришлось добавить fn, чтобы не поломать массивы?

    array("☯" => fn($number) => 100 * $number + 42)


    Раз => и -> заняты, то почему бы не использовать, например, ~>?

    array("☯" => $number ~> 100 * $number + 42)
    Ответить
        • У них был ещё вариант |$x| => 42 но кто-то посчитал, что это трудночитаемо.
          Ответить
          • А вообще зачем нужны «стрелочные функции»? Они же нужны только для сокращения писанины на несколько символов, когда функцию можно выразить одним выражением (т. е. когда тело функции состоит лишь из ретурна).

            В самом общем случае (когда есть ветвления, циклы, последовательный вызов какой-нибудь фигни с побочным эффектом) всё равно придётся описывать классический блок с фигурными скобками и ретурном.
            Ответить
            • Анскильный язык, в 'J' можно всё записать в одно выражение и течь.
              Ответить
            • схуя бы одного ретурна?

              совершенно валидная функция типа

              $lang => $lang == "PHP" ? "говно" : "не говно"
              Ответить
              • Допустим, ифы можно заменить тернарниками. А всё остальное?
                Ответить
                • Да что угодно:

                  $n => $n * $n;
                  $s => strip($s);

                  $a, $b => max($a, $b);
                  Ответить
                  • О, боже! Напиши ещё несколько бессмысленных выражений.
                    Ответить
                    • Написал тебе за щеку, проверь.

                      sort($padarasi, $pidar => $pidar->getIq());
                      $names = map($padarasi, $pidar => $pidar->getName());

                      если тебе все еще не понятно то ты птиху
                      Ответить
                      • Ты хуй. Ты приводишь только удобные тебе примеры, где функция состоит из единственного вызова другой функции.

                        Допустим, getIq возвращает Iq побочным эффектом (ну то есть как функция с типом результата void в сишке или процедура в Паскале):
                        function getIq($pidar, &$iq) {
                            $iq = 70; // здесь какая-то формула, но результат не в return, а в $iq
                        }

                        Тогда мне придётся писа́ть так:
                        sort($pidarasi, function($pidar){getIq($pidar, $tmp); return $tmp;});

                        В стрелочную функцию я переписать это не смогу, потому что в «PHP» нет оператора «запятая» (запятую можно использовать только в заголовке for). Чтобы запихнуть это говно в стрелочную функцию, мне придётся к getIq лепить обёртку:
                        function pure_getIq($pidar) {getIq($pidar, $tmp); return $tmp;}
                        sort($pidarasi, $pidar => pure_getIq($pidar));

                        Ради того, чтобы во второй строке получить красивую стрелочную функцию, мне придётся написать дополнительную строку, такую же, как если бы стрелочных функций не было.

                        Без обёрток как-то можно? Допустим, getIq — библиотечная функция, поэтому переписать я её не могу.
                        Ответить
                        • Ебать ты додик.

                          Ты начал с того что "стрелочная функция не нужна".
                          Я привел тебе пример с тренарником.
                          Ты сказал что кроме тренарника она ни для чего не нужна.
                          Я привел тебе кучу примеров где она нужна.

                          Теперь ты рассказываешь мне что иногда она не подходит.

                          Я не спорю что ИНОГДА она не походит. Но часто подходит.
                          Ответить
                          • Перечитал ветку. Я начал с того, что для частных случаев стрелочная функция подходит, даже указал, для каких: когда вся функция укладывается в один return с каким-то выражением.
                            Ответить
                            • Ну слава богу. Я не предлагаю же ВСЕГДА ее использовать.
                              Ответить
                              • Не читал, но наверное петух хочет не как в питоне, где только return, а как в js и c# полноценные функции.
                                Ответить
                                • Но в питоне они полноценные!
                                  (lambda x: exec("""
                                  for i in range(3):
                                      print(f"{x} —– петух!")
                                  """))("Сёма")
                                  Ответить
                                  • чтоб тебе файл на 900 строк в таком стиле написанны ра3бiрать
                                    Ответить
                                • вот такая лапшепараша точно не нужна

                                  я этого дерьма в жабе и ее скрипте наелся
                                  Ответить
                                  • 10 DATA "Бойсовы", "Анскильный", "Плавающий"
                                    20 LET COUNT% = 3
                                    30 RESTORE 10
                                    40 READ NAME$
                                    50 PRINT USING "& петух"; NAME$
                                    60 LET COUNT% = COUNT% - 1
                                    70 IF COUNT% > 0 THEN 40
                                    80 STOP
                                    90 END
                                    Ответить
                                      • Так точно! Хотя насчёт года я не уверен, но лапши этому коду не занимать.
                                        Ответить
                                          • «%» –— це цілий півень. Наприклад: i% = 9000
                                            «!» –— це плаваючий півень. Наприклад: x! = 3.14159265
                                            «$» –— це рядковий півень. Наприклад: s$ = "півень"

                                            До речі, «Quick BASIC» має додаткових півнів:
                                            «&» –— це довгий цілий півень. Наприклад: k& = 100500
                                            «#» –— це довгий плаваючий півень. Наприклад: z# = 1e100
                                            Ответить
            • В «Руби», кстати, почти всё возвращает значение. И жидкое междумордие можно лепить почти из чего угодно. Именно поэтому я за «D».

              А в «PHP» сейчас стрелка будет выглядеть чужеродно. Вот если всё остальное из «Руби» добавить...
              Ответить
              • >почти всё возвращает значение.
                да просто всё.

                def petux
                  42
                end
                
                 p petux # будет 42


                > Вот если всё остальное из «Руби» добавить...
                может быть лучше обоссать и сжечь этот кусок говна -- пхп, и взять нормальный язык типа руби?
                Ответить
                • Как ты подожгёшь-то, глупенький? Он же влажный мокрый будет!
                  Ответить
                  • Вот-вот! Я давно говорил, что порядок важен: сначала нужно сжигать, а потом обоссывать, но не наоборот!
                    Ответить
                    • Ты пил жидкость из колодца рядом с военным аэродромом?
                      Ответить
                              • У петухов разве есть уши? Чото не видел я.
                                Ответить
                                • Почти у всех птиц ухи закрыты перьями, поэтому их не видно.

                                  А анскильным людям постоянно нужно чистить уши. Их проблемы лишь забавляют меня.
                                  Ответить
                            • кто обзывается тот сам так называется
                              Ответить
                      • Кое-где у несовершеннолетних еще в ходу нелепые обычаи, касающиеся некоторых предметов, особенно еды. Даже существует целый свод правил-одностиший. («Сало, масло — западло. Колбаса — на член похожа. Сыр — мандятиной воняет. Курицу — петух топтал. Хлеб — растили коммунисты. По картошке — мент топтался. Воду — рыбы обоссали».) И так далее на все продукты питания. Это, конечно, скорее, шутка. Но в описанной выше колонии малолетки не едят ячневую кашу: сечка считается петушиной пищей. И не употребляют капусту, капуста — козлиная пища.
                        Ответить
                        • О, боже! Напиши нам ещё какую-нибудь копипасту.
                          Ответить
              • Действительно, в «Яuby» будет так:
                { |x| 42 }
                И то, если используется per se, а не как аргумент метода, нужно добавлять слово «lambda».

                В новых версиях можно ещё так:
                -> x {42}
                Ответить
                • а еще ещче можно так

                  fui block x
                  42
                  end

                  кажется или как-то так
                  Ответить
                    • а слабо нам это в лицо сказать а??
                      Ответить
                        • ну так приезжай йопт
                          мы тебя ждем йопто
                          попиздим по мужски йопто

                          зы: нахуй скобки то йопто???
                          Ответить
    • Анскилябры, не осилили кобенаторное и тацитное программирование. Именно поэтому я за 'J'.
      Ответить
  • >Изменить способ вывода значений на экран можно с помощью глагола «9!:3».
    ну нашуй этот фаш джэй
    Ответить
    • Нумерованные функции как в ассемблере, классно же.

      Ну дай функции имя, в чём проблема:
      set_display =: 9!:3
         mean =: +/ % #
         set_display 1
      
         mean
      ┌─────────────────┐
      │┌─┬─────────────┐│
      ││3│┌───────┬─┬─┐││
      ││ ││┌─┬───┐│%│#│││
      ││ │││/│┌─┐││ │ │││
      ││ │││ ││+│││ │ │││
      ││ │││ │└─┘││ │ │││
      ││ ││└─┴───┘│ │ │││
      ││ │└───────┴─┴─┘││
      │└─┴─────────────┘│
      └─────────────────┘
         set_display 2 4
      
         mean
      ┌─────┬─┬─┐
      │┌─┬─┐│%│#│
      ││+│/││ │ │
      │└─┴─┘│ │ │
      └─────┴─┴─┘
        ┌─ / ─── +
      ──┼─ %      
        └─ #      
         set_display ''
      
         mean NB. ничего
      !: —– это foreign conjunction, через него реализовано всё общение с внешним миром (ввод, вывод, дллки), с самим интерпретатором (настройки отображения, форматирование и пр. глобальные параметры, работа с именами и локалями) и пр. Для часто используемых функций конечно же даны имена:
      stdout
      1!:2&4
         stdin
      1!:1@3: :.stdout
         stderr
      1!:2&5
         wd
      11!:0
      Все эти функции документированы:
      https://www.jsoftware.com/help/dictionary/xmain.htm
      Ответить
      • >Нумерованные функции как в ассемблере, классно же.

        это ты сейчас типа про вектора попёрдываний сказал?
        Ответить
      • 15!: Dynamic Link Library
        18!: Locales
        128!: Miscellaneous

        ебаааат

        как в Sendmail окунулся
        Ответить
  • Не понял почему => нельзя
    array(
        $x => $x . "$x - петух",
        5 => "hui",
    )


    Разве тут есть неоднозначность?
    Ответить
    • Сам же эту неоднозначность только что и написал. Как ты собираешься отличать лямду от пары?
      Ответить
      • Ключем разве может быть не кококонстанта?
        Ответить
      • ахаха
        тупорылые пыхомакаки сделали себе граблю на пустом месте

        почему пыхеры такие тупые?
        Ответить
        • О, боже! Расскажи нам, что ты ещё знаешь о граблях.
          Ответить
          • Жалкое ничтожество!
            Твои попытки защитить пыхопе лишь забавляют меня
            Ответить
            • Святые угодники! Поделись с нами, что ещё забавляет тебя.
              Ответить
              • Забавно бывает наблюдать за птицами
                Пить пиво сидя на скамеечке весенним вечером
                Есть шашлыки с водкой на природе
                Глубокой ночью дрочить на порнуху
                Ебнуть с просоня крепкого кофе
                Отрефакторить говнокод выкинув два ненужных и шесть одинаковых кусков
                После суток ебли с пройфайлером найти о от эн квадрат и сделать о от эн
                Прочитать развесистую ману и наконец понять как что-то работает
                Есть гамбургер с картошкой наплевав на жыры
                Много есть на свете забавного
                Ответить
                • >Отрефакторить говнокод выкинув два ненужных и шесть одинаковых кусков
                  >После суток ебли с пройфайлером найти о от эн квадрат и сделать о от эн
                  >Прочитать развесистую ману и наконец понять как что-то работает
                  Хуй в жопу тебе принимать не забавно?
                  Ответить
        • Во времена, когда появился синтаксис мссивов, никто ни о каких стрелочных функциях и не думал. Ну и, кстати, синтаксис с fn не такой уж и плохой.
          Ответить
          • Когда делали «PHP» — вообще ни о чём не думали и текли. Именно поэтому я против «PHP».
            Ответить
        • В чём тупость, дод?
          Надо было как в джейсе двоеточие, или вообще никак?
          Ответить
    • Можно этот случай разрешать в пользу ключа. Как часто нужен массив функций? Если нужно - оьорачивай в скобки или пиши функцион.
      Ответить
      • чтобы мзог взровался, как в няшной
        Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8