3v4l.org

run code in 300+ PHP versions simultaneously
<?php $code = <<<CODE require_once 'config.php'; require_once 'startup.php'; //TODO: Добавить очистку массивов POST и GET $input = new Input; $session = new Session; $cookie = new Cookie; $user = User::getInstance(); //test - admin is permanently logged in $session->set('hash', '06260034fa0ac9fef81991f93abf2db3'); //test $hash = $session->get('hash') ? $session->get('hash') : $cookie->get('hash'); $user->fetchOneByHash($hash); //Запускаем action, в зависимости от того, что пришло в POST /** * Записываем в текущую историю то, что пришло из POST['text'] * (пользователь мог изменить предыдущий результат в поле ввода текста вручную) * Если же история пуста, произойдет инициализация сессии с историей - * в сессию в $_SESSION[category][0][text] запишется POST['text'] */ $history = History::getInstance(History::CURRENT_RECORD); $history->set('text', $input->post('text')); $history->destroyInstance(); $action = new Action($route); $action->execute(); CODE; preg_match_all('~(?(DEFINE) (?<comment> (?&line_comment) | (?&block_comment)) (?<line_comment> (?&slash_comment) | (?&hash_comment)) (?<slash_comment> //.*) (?<hash_comment> #.*) (?<block_comment> (?s)/\*.*?\*/) ) (?&comment)~x', $code, $matches); print_r($matches);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/IbDJs
function name:  (null)
number of ops:  60
compiled vars:  !0 = $code, !1 = $input, !2 = $session, !3 = $cookie, !4 = $user, !5 = $hash, !6 = $history, !7 = $action, !8 = $route, !9 = $matches
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   ROPE_INIT                                    39  ~22     '+require_once+%27config.php%27%3B%0A++++require_once+%27startup.php%27%3B%0A%0A++++%2F%2FTODO%3A+%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C+%D0%BE%D1%87%D0%B8%D1%81%D1%82%D0%BA%D1%83+%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2+POST+%D0%B8+GET%0A++++'
    8     1        ROPE_ADD                                      1  ~22     ~22, !1
          2        ROPE_ADD                                      2  ~22     ~22, '+%3D+new+Input%3B%0A++++'
    9     3        ROPE_ADD                                      3  ~22     ~22, !2
          4        ROPE_ADD                                      4  ~22     ~22, '+%3D+new+Session%3B%0A++++'
   10     5        ROPE_ADD                                      5  ~22     ~22, !3
          6        ROPE_ADD                                      6  ~22     ~22, '+%3D+new+Cookie%3B%0A%0A++++'
   12     7        ROPE_ADD                                      7  ~22     ~22, !4
          8        ROPE_ADD                                      8  ~22     ~22, '+%3D+User%3A%3AgetInstance%28%29%3B%0A%0A++++%2F%2Ftest+-+admin+is+permanently+logged+in%0A++++'
   15     9        FETCH_OBJ_R                                      ~10     !2, 'set'
         10        ROPE_ADD                                      9  ~22     ~22, ~10
         11        ROPE_ADD                                     10  ~22     ~22, '%28%27hash%27%2C+%2706260034fa0ac9fef81991f93abf2db3%27%29%3B%0A++++%2F%2Ftest%0A%0A++++'
   18    12        ROPE_ADD                                     11  ~22     ~22, !5
         13        ROPE_ADD                                     12  ~22     ~22, '+%3D+'
         14        FETCH_OBJ_R                                      ~11     !2, 'get'
         15        ROPE_ADD                                     13  ~22     ~22, ~11
         16        ROPE_ADD                                     14  ~22     ~22, '%28%27hash%27%29+%3F+'
         17        FETCH_OBJ_R                                      ~12     !2, 'get'
         18        ROPE_ADD                                     15  ~22     ~22, ~12
         19        ROPE_ADD                                     16  ~22     ~22, '%28%27hash%27%29+%3A+'
         20        FETCH_OBJ_R                                      ~13     !3, 'get'
         21        ROPE_ADD                                     17  ~22     ~22, ~13
         22        ROPE_ADD                                     18  ~22     ~22, '%28%27hash%27%29%3B%0A%0A++++'
   20    23        FETCH_OBJ_R                                      ~14     !4, 'fetchOneByHash'
         24        ROPE_ADD                                     19  ~22     ~22, ~14
         25        ROPE_ADD                                     20  ~22     ~22, '%28'
         26        ROPE_ADD                                     21  ~22     ~22, !5
         27        ROPE_ADD                                     22  ~22     ~22, '%29%3B%0A%0A%0A++++%2F%2F%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D0%B5%D0%BC+action%2C+%D0%B2+%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8+%D0%BE%D1%82+%D1%82%D0%BE%D0%B3%D0%BE%2C+%D1%87%D1%82%D0%BE+%D0%BF%D1%80%D0%B8%D1%88%D0%BB%D0%BE+%D0%B2+POST%0A%0A++++++++%2F%2A%2A%0A++++++++%2A+%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC+%D0%B2+%D1%82%D0%B5%D0%BA%D1%83%D1%89%D1%83%D1%8E+%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8E+%D1%82%D0%BE%2C+%D1%87%D1%82%D0%BE+%D0%BF%D1%80%D0%B8%D1%88%D0%BB%D0%BE+%D0%B8%D0%B7+POST%5B%27text%27%5D+%0A++++++++%2A+%28%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C+%D0%BC%D0%BE%D0%B3+%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C+%D0%BF%D1%80%D0%B5%D0%B4%D1%8B%D0%B4%D1%83%D1%89%D0%B8%D0%B9+%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82+%D0%B2+%D0%BF%D0%BE%D0%BB%D0%B5+%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0+%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0+%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E%29%0A++++++++%2A+%D0%95%D1%81%D0%BB%D0%B8+%D0%B6%D0%B5+%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F+%D0%BF%D1%83%D1%81%D1%82%D0%B0%2C+%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%BE%D0%B9%D0%B4%D0%B5%D1%82+%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+%D1%81%D0%B5%D1%81%D1%81%D0%B8%D0%B8+%D1%81+%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D0%B5%D0%B9+-+%0A++++++++%2A+%D0%B2+%D1%81%D0%B5%D1%81%D1%81%D0%B8%D1%8E+%D0%B2+'
   29    28        FETCH_R                      global              ~15     '_SESSION'
         29        FETCH_DIM_R                                      ~16     ~15, 'category'
         30        ROPE_ADD                                     23  ~22     ~22, ~16
         31        ROPE_ADD                                     24  ~22     ~22, '%5B0%5D%5Btext%5D+%D0%B7%D0%B0%D0%BF%D0%B8%D1%88%D0%B5%D1%82%D1%81%D1%8F+POST%5B%27text%27%5D%0A++++++++%2A%2F%0A++++++++'
   31    32        ROPE_ADD                                     25  ~22     ~22, !6
         33        ROPE_ADD                                     26  ~22     ~22, '+%3D+History%3A%3AgetInstance%28History%3A%3ACURRENT_RECORD%29%3B%0A++++++++'
   32    34        FETCH_OBJ_R                                      ~17     !6, 'set'
         35        ROPE_ADD                                     27  ~22     ~22, ~17
         36        ROPE_ADD                                     28  ~22     ~22, '%28%27text%27%2C+'
         37        FETCH_OBJ_R                                      ~18     !1, 'post'
         38        ROPE_ADD                                     29  ~22     ~22, ~18
         39        ROPE_ADD                                     30  ~22     ~22, '%28%27text%27%29%29%3B%0A++++++++'
   33    40        FETCH_OBJ_R                                      ~19     !6, 'destroyInstance'
         41        ROPE_ADD                                     31  ~22     ~22, ~19
         42        ROPE_ADD                                     32  ~22     ~22, '%28%29%3B%0A%0A++++'
   35    43        ROPE_ADD                                     33  ~22     ~22, !7
         44        ROPE_ADD                                     34  ~22     ~22, '+%3D+new+Action%28'
         45        ROPE_ADD                                     35  ~22     ~22, !8
         46        ROPE_ADD                                     36  ~22     ~22, '%29%3B%0A++++'
   36    47        FETCH_OBJ_R                                      ~20     !7, 'execute'
         48        ROPE_ADD                                     37  ~22     ~22, ~20
         49        ROPE_END                                     38  ~21     ~22, '%28%29%3B'
    3    50        ASSIGN                                                   !0, ~21
   39    51        INIT_FCALL                                               'preg_match_all'
         52        SEND_VAL                                                 '%7E%28%3F%28DEFINE%29%0A++++%28%3F%3Ccomment%3E++++++++++%28%3F%26line_comment%29+%7C+%28%3F%26block_comment%29%29%0A++++%28%3F%3Cline_comment%3E++++%28%3F%26slash_comment%29+%7C+%28%3F%26hash_comment%29%29%0A++++%28%3F%3Cslash_comment%3E+++%2F%2F.%2A%29%0A++++%28%3F%3Chash_comment%3E++++%23.%2A%29%0A++++%28%3F%3Cblock_comment%3E+++%28%3Fs%29%2F%5C%2A.%2A%3F%5C%2A%2F%29%0A%29%0A%28%3F%26comment%29%7Ex'
   46    53        SEND_VAR                                                 !0
         54        SEND_REF                                                 !9
         55        DO_ICALL                                                 
   48    56        INIT_FCALL                                               'print_r'
         57        SEND_VAR                                                 !9
         58        DO_ICALL                                                 
         59      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
165.53 ms | 1408 KiB | 17 Q