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

0

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

С тостера

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

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

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

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

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

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

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

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

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

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

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

                                        кто тебе мешает делать type-safe касты?
                                        Ответить
                                        • По-моему, это диалоги от одного Ъероя...
                                          Кто тут завёл речь о типизации в столь смутном наречии, как "PHP" - тот дурак, в общем-то.
                                          Ибо он не представляет с какой глобальной целью оная тупициция была задумана. Ибо в самом этом "пиэйчпи" всякие данные представляют из себя абсолютно любой тип, который может себе представить посредственный PHP-индеец. Тип, который оперделён в правилах преобразования типов этого ссамого "пиэйчпи".
                                          Именно поэтому, и какие бы ссишные умозаключения вы бы не внедряли, дух Лердорфа отовсюду и из любого извне преобразует эти ваши "касты" в стандартные используемые типы данных. Оццатите, кароче... И простите за мой вечерний французский..
                                          Ответить
                                          • Я бы сказал так: кто пишет на столь смутном наречии, как "PHP" - тот дурак, в общем-то.
                                            Ответить
        • Зачем с разницей в час? Всего лишь согласно таймзонам каждого сервера.
          Ответить
  • с хуёстера. дай ссылку, а то гугл что-то не знает про твои фантазии.
    Ответить
      • Только не что? И где по ссылке вышеописанное?
        Ответить
        • Я очень люблю 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 инъекцией.
                Ответить
                    • В сишке трудно. Там же строки хуй сконкатенируешь. Параметрами передавать реально проще.
                      Ответить
                          • Кто там говорил что дельфи хуже си?
                            В дельфи можно "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``, вот это всё.
                                          Ответить
                                    • >> Сишка же создана для эффективного велосипедостроения


                                      Сишечка создана чтобы сделать юникс переносимым на уровне исходного кода между различными архитектурами.
                                      Ответить
                            • В Си до сих пор нет православных операторов для работы со строками? Доколе можно это терпеть?
                              Ответить
                              • и правда, как на нём можно писать? срочно всех на ПХП
                                Ответить
                    • Не пизди. На нормальных языках апи поддерживает именованные параметры.
                      Ответить
    • не совсем, php программисты жалуются, что например в wordpress все сделано на глобальных переменных и функциях. и когда всякие мудаки начинают начинают писать к нему плагины, очень часто они используют одинаковые имена переменных и функций, для своего говна.
      и получается фарш из плагинов, которые несовместимы друг с другом. такие функции помогли бы выявить такие случаи.
      Ответить
      • мне кажется в таком случае следует использовать в имени префикс плагина.
        Ответить
        • следует-то оно следует, но из 39к написано. ты предлагаешь все заставить рефакторингом заниматься?
          Ответить
      • А можно сделать что-то вида
        namespace xxx {
        include(сторонний модуль)
        }

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

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8