1. Lua / Говнокод #25014

    0

    1. 1
    2. 2
    _G = setmetatable(_G, {__newindex = function(t,k,v) t[k] = "sG_nil" end})
    pitux=1

    чо поцоны, изи рекурсия.

    Запостил: 3oJIoTou_xyu, 24 Октября 2018

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

    • Переведи на "PHP".
      Ответить
      • а давай ты переведешь.
        Ответить
      • Не благодари
        <?php
        $handle = popen('/usr/bin/env lua', 'w');
        fwrite($handle, <<<LUA
        _G = setmetatable(_G, {__newindex = function(t,k,v) t[k] = "sG_nil" end})
        pitux=1
        LUA
        );
        pclose($handle);
        Ответить
        • >>>"popen"

          А "gagen" есть?
          Ответить
        • Можно ещё так (если установлено расширение php_lua):
          <?php
          $luaobj = new Lua();
          $luaobj->eval(<<<LUA
          _G = setmetatable(_G, {__newindex = function(t,k,v) t[k] = "sG_nil" end})
          pitux=1
          LUA
          );
          Ответить
        • Переведи на "Lua".
          Ответить
    • Это что, типа перегрузки оператора "="? При вызове присваивания вызывается new_index, который, в свою очередь, вызывает присваивание...
      Ответить
      • ноуп. local x=1 или math="pitux" отработает нормально.
        Эта мета вызывается когда новый элемент в таблице пытается появится
        _G эта таблица глобальных переменных.
        То есть любая глобальная переменная = элементу таблицы _G
        следовательно создавая новую глобальную переменую он создает новый элемент в _G и вызывает метаметод __newindex который в свою очередь присваивает _G["pitux"]="sG_nil" снова, и опять вызывется этот метаметод а потом снова и снова.
        Ответить
    • Поэтому я против "Lua".
      Ответить

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