1. PHP / Говнокод #18360

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    мне кажется, до полноценности php не хватает несколько функций:
    alias() - заменяет один код другим кодом при парсинге,
    var_history() - возвращает историю значений переменной в виде массива,
    function_history() - возвращает массив аргументов, которые передавались функции,
    var() - устанавливает и изменяет значение и тип переменной.

    С тостера

    Запостил: pi3141592653, 18 Июня 2015

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

    • в пхп уже можно менять тип переменной
      Ответить
      • а он там есть?
        Ответить
        • vardump($var) - динамическая типизация, не есть отсутствие типизации
          Ответить
          • Не динамическая, а слабая.
            Ответить
            • Слабая у тебя голова, а типизация в ПХП именно что динамическая и довольно нестрогая.
              Ответить
              • >нестрогая.
                >слабая.
                Дурак?
                Ответить
                • Смотри, всё очень просто. В пышечке типизация динамическая (потому что в рантайме у переменной есть тип). А ты написал "Не динамическая".

                  Угадай, кто тут дурак?
                  Ответить
                  • >динамическая типизация, не есть отсутствие типизации
                    Слабая типизация может означать практически ее отсутствие, вне зависимости от статическая/динамическая.
                    Ответить
                    • То есть ты хотел сказать что в PHP нет типизации? Невозможно узнать тип переменной? Ты все еще думаешь что из нас двоих дурак именно я?
                      Ответить
                      • Лесенка из гостей :)
                        Ответить
                        • на самом деле из гостей я тут один:) мне просто нравится самому с собой разговаривать
                          Ответить
                        • Самое забавное то, что мой тут первый и третий коммент. Кто потом начал доказывать, что в интернете кто-то не прав, я хз
                          Ответить
                          • Охуеть какой забавный факт.
                            Ответить
                          • Интересно, кто-нибудь проводил такой эксперимент:
                            1. Создаётся набор личностей. Скажем, перфокартовый инженер-байтовед, HTML-программист, жабоЪнтерпрайзник, скриптораст, теоретик-хаскелерат, принцесса плюсовых шаблонов.
                            2. Создаются учётки для них, пароли сообщаются всем (или группе адекватных).
                            3. Сразу несколько человек пишет от их имени в их стиле комментарии так, чтобы получалась нормальная беседа. Возможно, модераторы следят, чтобы школоло не постило гоатсе от имени гееретика.
                            4. Когда кто-то из участников умирает или уходит с сайта, его заменяют, а личности живут, процветают и общаются на сайте, поражая всех своей мудростью.
                            Недавно последний человек, писавший так с учётки "bormand" куда-то уехал.
                            Ответить
                            • Я такую РПГ джва года жду
                              Ответить
                            • Получишь тех же анонимусов.
                              Ответить
                            • Такое сплошь и рядом происходит. Особенно в раёоне мухосранских стартапов.
                              Ответить
                      • Я тебя спрашивал, есть ли там она. И какой от нее прок если все равно все конвертируется без спросу.

                        Читая тебя, кажется, что гости на программистском сайте не нужны. Идите на лор, что ли.
                        Ответить
                        • Отвечаю тебе, любопытный мальчик: в PHP есть типизация. Она динамическая (в рантайме можно узнать тип переменной) и довольно слабая/нестрогая (число автоматически кастится к строке, например)
                          Ответить
                          • И какой от нее тогда прок?
                            Ответить
                            • ооо) так ты настолько туп, что даже не знаешь зачем динаиическая типизация нужна?

                              А ты подумай как иначе работать операторам, например.
                              Что вообще можно сделать с кучкой байт если не знать что они представляют: указатель на массив символов или обычный инт?
                              Ответить
                              • Нет, я не знаю зачем нужна слабая.

                                Вот в перле есть один простой тип: скаляр. А как оно внутри устроено - хуй его знает. То, что ты рассказываешь - это внутренние потроха языка, не больше
                                Ответить
                                • для работы операторов, блин! Без типизации нельзя. Другой вопрос что правила неявного кастинга там и правда пидарские, но не такие пидарские как в JS конечно (в JS вообще никогда никто не знает во что вычислится выражение, потому что там 100500 типов и все они как-то неявно друг в друга кастятся хуй пойми как).

                                  Но спешу тебя успокоить; в голове типичного ПХПшника есть два типа "массив и не массив", так что перловик даже выигрывает: в перле кроме скаляра есть еще массив и ассоциативный (ака хкеш) массив, а пхпшник даже разницу между обычный и ассоциативным не понимает ввиду одинаковости синтаксиса

                                  А так-то я конечно на строгую типизацию. Например, как в пистоне
                                  Ответить
                                  • >для работы операторов, блин!
                                    Один хрен все конвертируется, блин!
                                    Ответить
                                    • но конвертируется-то по правилам!

                                      а какие могут быть правила если тип не известен?

                                      Короче, представь себе что ты интерпретатор.
                                      И у тебя есть переменная, и пускай даже ты знаешь что она 1 байт, и там лежит 0xFA. И к ней прибавляют переменную в которой лежит 0x0. Как ты поймешь что будет в результате если ты не знаешь типа переменнгой?
                                      Ответить
                                      • Вопрос был: какое значение для пользователя имеет тип переменной при слабой типизации? То, что ты рассказываешь - это потроха языка.
                                        Ответить
                                        • чтоб понимать чему равно $a + $b
                                          Ответить
                                        • >>какое значение для пользователя имеет тип переменной

                                          кто тебе мешает делать type-safe касты?
                                          Ответить
                                          • По-моему, это диалоги от одного Ъероя...
                                            Кто тут завёл речь о типизации в столь смутном наречии, как "PHP" - тот дурак, в общем-то.
                                            Ибо он не представляет с какой глобальной целью оная тупициция была задумана. Ибо в самом этом "пиэйчпи" всякие данные представляют из себя абсолютно любой тип, который может себе представить посредственный PHP-индеец. Тип, который оперделён в правилах преобразования типов этого ссамого "пиэйчпи".
                                            Именно поэтому, и какие бы ссишные умозаключения вы бы не внедряли, дух Лердорфа отовсюду и из любого извне преобразует эти ваши "касты" в стандартные используемые типы данных. Оццатите, кароче... И простите за мой вечерний французский..
                                            Ответить
                                            • Я бы сказал так: кто пишет на столь смутном наречии, как "PHP" - тот дурак, в общем-то.
                                              Ответить
                                  • Я понимаю, тк изучал JS
                                    Ответить
    • коммент о джва года.
      Ответить
    • причем история должна вестись от сотворения php :)
      Ответить
      • Причём со всех серверов.
        Ответить
        • С разницей в час. Что бы жизнь медом не казалась
          Ответить
          • Зачем с разницей в час? Всего лишь согласно таймзонам каждого сервера.
            Ответить
    • с хуёстера. дай ссылку, а то гугл что-то не знает про твои фантазии.
      Ответить
      • На, только не плач
        https://toster.ru/q/225510
        Ответить
        • Только не что? И где по ссылке вышеописанное?
          Ответить
          • Глаза разуй https://toster.ru/q/225510#comment_770133
            Ответить
            • лололо
              Ответить
            • Пых язык олигофренов
              Ответить
              • Неужели олигофрены стали настолько образованными, что осилили (пусть и дерьмовый) язык программирования?
                Ответить
                • ну как осилили...
                  скорее писать научились
                  Ответить
        • http://rutracker.org/forum/viewtopic.php?t=2828019 а вот это уже жирно
          Ответить
          • Я очень люблю PHP программистов. Обычно они обсуждают серьезные вопросы из мира IT:




            http://phpclub.ru/talk/threads/%D0%9A%D0%B0%D0%BA-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1% 8C-%D0%BF%D0%B5%D1%80%D0%B5%D0%B1%D0%BE%D1% 80%D0%BA%D1%83-%D0%B3%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1% 8C%D0%BD%D0%BE.80342/



            http://phpclub.ru/talk/threads/%D0%9F%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1% 82%D0%B5-%D0%9D%D0%B5-%D0%BC%D0%BE%D0%B3%D1%83-%D1%80%D0%B0%D0%B7%D0%BE%D0%B1%D0%B0%D1% 80%D1%82%D1%8C%D1%81%D1%8F-%D1%81-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0%D0% BC%D0%B8.80454/
            Ответить
            • Ну вот, ссылки испортились:((

              Попробуй-ка я так:

              [color:blue]http://tinyurl.com/owg4ckz[/color]
              [color:blue]http://tinyurl.com/out85cz[/color]
              Ответить
              • столкнулся с проблемамы
                Ответить
                • Вообще он милый, помоему. Еще только изучает ООП, а уже сразу написал код с SQL инъекцией.
                  Ответить
                  • В пхп это совсем не трудно.
                    Ответить
                    • это вообще не трудно. Хоть в чем
                      Ответить
                      • В сишке трудно. Там же строки хуй сконкатенируешь. Параметрами передавать реально проще.
                        Ответить
                        • чего нельзя ''sdfdsfdsfdsf'+'sdfdsfsdfsfsfds'; так что ли ?
                          Ответить
                          • Неа, там же нет строк в привычном виде.
                            Ответить
                            • Кто там говорил что дельфи хуже си?
                              В дельфи можно "cdfasdfasdfasdas"+"asdasdasdasdasda s";
                              Ответить
                              • Ой для,ну как же без склейки строк то? В сях есть strcat.
                                Ответить
                                • в нормальных языках для этого есть + ну или .
                                  Ответить
                                  • Вася, чтобы этос делать в сишечке тебе придется:

                                    1) ввести в си тип "string"
                                    2) перегрузить оператор + для этого типа, причем придумать ему семантику: потому что совершенно не понятно как сложить строки если одна в куче, а другая в стеке, а третья вообще литерал, например. Куда положить новую строку?

                                    Короче ты предлагаешь засрать язык сложным, запутанным, слабо поддающимся дебагу говном. И самое главное -- зачем? На сях как-бы не строки склеивают обычно.
                                    Ответить
                                    • ок спасибо
                                      Ответить
                                    • > На сях как-бы не строки склеивают обычно.

                                      Можно подумать, текстовые редакторы обычно пишут не на сишечке.

                                      Эффективно склеивать строки - дело не всегда тривиальное, часто нужно свои велики изобретать (верёвки всякие, gap buffer, piece table, etc).

                                      Сишка же создана для эффективного велосипедостроения
                                      Ответить
                                      • Написание собственного редактора на сях подразумевает думанье про память, а значит автору и всё равно придется думать о том, где живут его строки. А когда ты знаешь где они живут то и strcat отлично подходит.

                                        Перегрузка оператора плюс же нужна для ситуации, когда думать о памяти не хочется вообще, потому что ты пишешь какую-то легкую выскоуровневую тулзу.
                                        Например для такого кейса:

                                        url = "http://goatse.cx/?user=" + sema_name


                                        понятное дело что подобное на сях пишут редко.

                                        Может вам еще и массивы склеивать плюсом?
                                        Ответить
                                        • Я же не утверждаю, что нужно было впихнуть перезрузку плюса и разрешить не думать. Скорее наоборот.

                                          Ну и особо упоротые сишники, вроде разработчиков гнома, давно уже всё запилили - например, glib с g_strdup_printf
                                          Ответить
                                          • Ого) ``gchar*``, ``g_free``. В каждой избушке свои погремушки, хотя внутри там небось тот же char.

                                            Больше строк хороших и разных. ``std::string``, ``NSString``, вот это всё.
                                            Ответить
                                      • >> Сишка же создана для эффективного велосипедостроения


                                        Сишечка создана чтобы сделать юникс переносимым на уровне исходного кода между различными архитектурами.
                                        Ответить
                                        • Юникс не нужен. Посмотрел я как-то на вашу FreeBSD, а там чёрт вилами тычет. Лишнее это всё, пустое...
                                          Ответить
                                          • Там давно уже не черт. Православные люди добились чтобы FreeBSD избавилось от этой нечисти, от символа лукавого!
                                            Ответить
                                            • > избавилось от этой нечисти, от символа лукавого!

                                              Говорит, сам Архиепископ задизайнил новый логотип, а Боженька явился ему во сне и зааппрувил.
                                              Ответить
                                              • Осталось от б-г мерзких терминов "демон", "кил" и "пермишен 666" избавица
                                                Ответить
                                              • Заappleрувил
                                                Ответить
                                          • Кстати FreeBSD не совсем Юникс.

                                            Точнее говоря он unix, но не UNIX (r).


                                            https://www.freebsd.org/doc/en_US.ISO8859-1/articles/explaining-bsd/what-a-real-unix.html
                                            Ответить
                              • НЕ Я
                                Ответить
                              • В Си до сих пор нет православных операторов для работы со строками? Доколе можно это терпеть?
                                Ответить
                                • и правда, как на нём можно писать? срочно всех на ПХП
                                  Ответить
                      • Не пизди. На нормальных языках апи поддерживает именованные параметры.
                        Ответить
    • history oriented programming?
      Ответить
      • не совсем, php программисты жалуются, что например в wordpress все сделано на глобальных переменных и функциях. и когда всякие мудаки начинают начинают писать к нему плагины, очень часто они используют одинаковые имена переменных и функций, для своего говна.
        и получается фарш из плагинов, которые несовместимы друг с другом. такие функции помогли бы выявить такие случаи.
        Ответить
        • мне кажется в таком случае следует использовать в имени префикс плагина.
          Ответить
          • следует-то оно следует, но из 39к написано. ты предлагаешь все заставить рефакторингом заниматься?
            Ответить
        • А можно сделать что-то вида
          namespace xxx {
          include(сторонний модуль)
          }

          ?
          Ответить
          • Я не использовал функции в нейм спейсах но что то мне подсказывает, что функции находятся в глобал спейсе.
            Ответить
          • Самое забавное, что неймспейсы в PHP никак не влияют на... переменные. Т.е. даже в таком случае будут конфликты переменных.
            Ответить
            • Всё правильно. Впредь неповадно будет глобальные переменные объявлять. Чай, не Фортран, можно и класс объявить.
              Ответить
            • зачем они тогда вообще нужны?
              Ответить
              • Для классов. Чтобы вместо длинного идентификатора класса Zend_Form_Decorator_Captcha можно было писать цепочку неймспейсов типа \Zend\Form\Decorator\Captcha. Всё, больше ни для чего.
                Ответить
    • зачем им вообще эти функции, если есть die()?
      <?php die("");?>
      Ответить

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