3v4l.org

run code in 300+ PHP versions simultaneously
<?php function r($obj) { foreach ($obj as $name => $val) { if (is_numeric($val)) { $type = 'numeric'; } elseif (is_string($val)) { $type = 'string'; } elseif (is_array($val)) { $type = 'array'; if (is_object($val[0])) { $items = r($val[0]); } } echo PHP_EOL, '"', $name, '": {"type": ', $type, ', "required": true},'; } } $obj = json_decode('{"rating_imhonet":8.25, "rating_imdb":7.9, "genres":[ "Драмы", "Криминал" ], "description":"Фильм «Американская История Икс» (American History X) рассказывает об одном из лидеров неонацистской группировки Дереке Виньярде. Называя себя «Учениками апостолов», участники банды жестоко расправляются с теми, у кого не белый цвет кожи. Они крушат магазины латиносов, и готовы избить до смерти любого черного, который попадется им на пути. Решительный и смелый Дерек вызывает восхищение и уважение у своего младшего брата Денни, который стремится во всем ему подражать. Но после убийства двух чернокожих подростков, Дерек попадает в тюрьму. Там он начинает понимать всю ничтожность своих мировоззрений, и теперь, отсидев три года, ему предстоит вытащить брата из этой банды. Главные роли в кинофильме «Американская история Х» исполнили Эдвард Нортон («Иллюзионист») и Эдвард Ферлонг («Терминатор 2:Судный день»)./", "countries":[ "США" ], "poster":"http://st1.imhonet.ru/element/large/ca/f1/caf19b3c92fbcb70d4da439c82b4852d.jpg", "title_en":"American History X", "comments":10549, "similar":[ {"poster":"http://st1.imhonet.ru/element/large/47/4a/474a8e0218de9d3f62a771e8cf257b83.jpg", "title": "8 женщин"}, {"poster":"http://st1.imhonet.ru/element/large/ca/f1/caf19b3c92fbcb70d4da439c82b4852d.jpg", "title": "Название"} ], "directors":[ { "name_ru":"Тони Кэй", "photo":"http://st1.imhonet.ru/person/large/9a/33/9a331dcb850afeea0a3a1caafc193f5c.jpg", "id":75006, "name_en":"Tony Kaye" } ], "actors":[ { "name_ru":"Стэйси Кич", "photo":"http://st1.imhonet.ru/person/large/2b/22/2b22df0b43020a64f06e4e03a93dd6e2.jpg", "id":67145, "name_en":"Stacy Keach" }, { "name_ru":"Эдвард Ферлонг", "photo":"http://st1.imhonet.ru/person/large/30/3b/303b11042e2ca480604a5ee836306286.jpg", "id":67799, "name_en":"Edward Furlong" }, { "name_ru":"Кристофер Мастерсон", "photo":"http://st1.imhonet.ru/person/large/59/e3/59e3d230f4e9676746c305b00ff248ae.jpg", "id":69220, "name_en":"Christopher Masterson" }, { "name_ru":"Эдвард Нортон", "photo":"http://st1.imhonet.ru/person/large/40/52/4052ced1931eb204786b62b4c176190e.jpg", "id":70962, "name_en":"Edward Norton" }, { "name_ru":"Д\'Анджело Беверли", "photo":"http://st1.imhonet.ru/person/large/f2/1b/f21ba669096d07b50207f8cb59898953.jpg", "id":71356, "name_en":"D\'Angelo Beverly" }, { "name_ru":"Керам Малики-Санчес", "photo":"http://st1.imhonet.ru/person/large/79/c2/79c20426702775ec5e41514645a9e607.jpg", "id":75012, "name_en":"Keram Malicki-Sanchez" }, { "name_ru":"Алекс Сол", "photo":"http://st1.imhonet.ru/person/large/e8/70/e87004bcf08fea80d7374f20c2e059ed.jpg", "id":75016, "name_en":"Alex Sol" } ], "title_ru":"Американская История Икс", "year":1998, "duration":119, "id":187735}');
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/mt4b9
function name:  (null)
number of ops:  5
compiled vars:  !0 = $obj
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   21     0  E >   INIT_FCALL                                               'json_decode'
          1        SEND_VAL                                                 '%7B%22rating_imhonet%22%3A8.25%2C+%22rating_imdb%22%3A7.9%2C+%22genres%22%3A%5B+%22%D0%94%D1%80%D0%B0%D0%BC%D1%8B%22%2C+%22%D0%9A%D1%80%D0%B8%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%22+%5D%2C+%22description%22%3A%22%D0%A4%D0%B8%D0%BB%D1%8C%D0%BC+%C2%AB%D0%90%D0%BC%D0%B5%D1%80%D0%B8%D0%BA%D0%B0%D0%BD%D1%81%D0%BA%D0%B0%D1%8F+%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F+%D0%98%D0%BA%D1%81%C2%BB+%28American+History+X%29+%D1%80%D0%B0%D1%81%D1%81%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82+%D0%BE%D0%B1+%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC+%D0%B8%D0%B7+%D0%BB%D0%B8%D0%B4%D0%B5%D1%80%D0%BE%D0%B2+%D0%BD%D0%B5%D0%BE%D0%BD%D0%B0%D1%86%D0%B8%D1%81%D1%82%D1%81%D0%BA%D0%BE%D0%B9+%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8+%D0%94%D0%B5%D1%80%D0%B5%D0%BA%D0%B5+%D0%92%D0%B8%D0%BD%D1%8C%D1%8F%D1%80%D0%B4%D0%B5.+%D0%9D%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D1%8F+%D1%81%D0%B5%D0%B1%D1%8F+%C2%AB%D0%A3%D1%87%D0%B5%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8+%D0%B0%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D0%BB%D0%BE%D0%B2%C2%BB%2C+%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B8+%D0%B1%D0%B0%D0%BD%D0%B4%D1%8B+%D0%B6%D0%B5%D1%81%D1%82%D0%BE%D0%BA%D0%BE+%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%82%D1%81%D1%8F+%D1%81+%D1%82%D0%B5%D0%BC%D0%B8%2C+%D1%83+%D0%BA%D0%BE%D0%B3%D0%BE+%D0%BD%D0%B5+%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9+%D1%86%D0%B2%D0%B5%D1%82+%D0%BA%D0%BE%D0%B6%D0%B8.+%D0%9E%D0%BD%D0%B8+%D0%BA%D1%80%D1%83%D1%88%D0%B0%D1%82+%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D1%8B+%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%D0%BE%D1%81%D0%BE%D0%B2%2C+%D0%B8+%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D1%8B+%D0%B8%D0%B7%D0%B1%D0%B8%D1%82%D1%8C+%D0%B4%D0%BE+%D1%81%D0%BC%D0%B5%D1%80%D1%82%D0%B8+%D0%BB%D1%8E%D0%B1%D0%BE%D0%B3%D0%BE+%D1%87%D0%B5%D1%80%D0%BD%D0%BE%D0%B3%D0%BE%2C+%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9+%D0%BF%D0%BE%D0%BF%D0%B0%D0%B4%D0%B5%D1%82%D1%81%D1%8F+%D0%B8%D0%BC+%D0%BD%D0%B0+%D0%BF%D1%83%D1%82%D0%B8.+%D0%A0%D0%B5%D1%88%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D0%B8+%D1%81%D0%BC%D0%B5%D0%BB%D1%8B%D0%B9+%D0%94%D0%B5%D1%80%D0%B5%D0%BA+%D0%B2%D1%8B%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82+%D0%B2%D0%BE%D1%81%D1%85%D0%B8%D1%89%D0%B5%D0%BD%D0%B8%D0%B5+%D0%B8+%D1%83%D0%B2%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5+%D1%83+%D1%81%D0%B2%D0%BE%D0%B5%D0%B3%D0%BE+%D0%BC%D0%BB%D0%B0%D0%B4%D1%88%D0%B5%D0%B3%D0%BE+%D0%B1%D1%80%D0%B0%D1%82%D0%B0+%D0%94%D0%B5%D0%BD%D0%BD%D0%B8%2C+%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9+%D1%81%D1%82%D1%80%D0%B5%D0%BC%D0%B8%D1%82%D1%81%D1%8F+%D0%B2%D0%BE+%D0%B2%D1%81%D0%B5%D0%BC+%D0%B5%D0%BC%D1%83+%D0%BF%D0%BE%D0%B4%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C.+%D0%9D%D0%BE+%D0%BF%D0%BE%D1%81%D0%BB%D0%B5+%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%B0+%D0%B4%D0%B2%D1%83%D1%85+%D1%87%D0%B5%D1%80%D0%BD%D0%BE%D0%BA%D0%BE%D0%B6%D0%B8%D1%85+%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D1%81%D1%82%D0%BA%D0%BE%D0%B2%2C+%D0%94%D0%B5%D1%80%D0%B5%D0%BA+%D0%BF%D0%BE%D0%BF%D0%B0%D0%B4%D0%B0%D0%B5%D1%82+%D0%B2+%D1%82%D1%8E%D1%80%D1%8C%D0%BC%D1%83.+%D0%A2%D0%B0%D0%BC+%D0%BE%D0%BD+%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D0%B5%D1%82+%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D1%82%D1%8C+%D0%B2%D1%81%D1%8E+%D0%BD%D0%B8%D1%87%D1%82%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C+%D1%81%D0%B2%D0%BE%D0%B8%D1%85+%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D0%B7%D0%B7%D1%80%D0%B5%D0%BD%D0%B8%D0%B9%2C+%D0%B8+%D1%82%D0%B5%D0%BF%D0%B5%D1%80%D1%8C%2C+%D0%BE%D1%82%D1%81%D0%B8%D0%B4%D0%B5%D0%B2+%D1%82%D1%80%D0%B8+%D0%B3%D0%BE%D0%B4%D0%B0%2C+%D0%B5%D0%BC%D1%83+%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%BE%D0%B8%D1%82+%D0%B2%D1%8B%D1%82%D0%B0%D1%89%D0%B8%D1%82%D1%8C+%D0%B1%D1%80%D0%B0%D1%82%D0%B0+%D0%B8%D0%B7+%D1%8D%D1%82%D0%BE%D0%B9+%D0%B1%D0%B0%D0%BD%D0%B4%D1%8B.+%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D1%8B%D0%B5+%D1%80%D0%BE%D0%BB%D0%B8+%D0%B2+%D0%BA%D0%B8%D0%BD%D0%BE%D1%84%D0%B8%D0%BB%D1%8C%D0%BC%D0%B5+%C2%AB%D0%90%D0%BC%D0%B5%D1%80%D0%B8%D0%BA%D0%B0%D0%BD%D1%81%D0%BA%D0%B0%D1%8F+%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F+%D0%A5%C2%BB+%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D0%BB%D0%B8+%D0%AD%D0%B4%D0%B2%D0%B0%D1%80%D0%B4+%D0%9D%D0%BE%D1%80%D1%82%D0%BE%D0%BD+%28%C2%AB%D0%98%D0%BB%D0%BB%D1%8E%D0%B7%D0%B8%D0%BE%D0%BD%D0%B8%D1%81%D1%82%C2%BB%29+%D0%B8+%D0%AD%D0%B4%D0%B2%D0%B0%D1%80%D0%B4+%D0%A4%D0%B5%D1%80%D0%BB%D0%BE%D0%BD%D0%B3+%28%C2%AB%D0%A2%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D1%82%D0%BE%D1%80+2%3A%D0%A1%D1%83%D0%B4%D0%BD%D1%8B%D0%B9+%D0%B4%D0%B5%D0%BD%D1%8C%C2%BB%29.%2F%22%2C+%22countries%22%3A%5B+%22%D0%A1%D0%A8%D0%90%22+%5D%2C+%22poster%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Felement%2Flarge%2Fca%2Ff1%2Fcaf19b3c92fbcb70d4da439c82b4852d.jpg%22%2C+%22title_en%22%3A%22American+History+X%22%2C+%22comments%22%3A10549%2C+%22similar%22%3A%5B+%7B%22poster%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Felement%2Flarge%2F47%2F4a%2F474a8e0218de9d3f62a771e8cf257b83.jpg%22%2C+%22title%22%3A+%228+%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%22%7D%2C+%7B%22poster%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Felement%2Flarge%2Fca%2Ff1%2Fcaf19b3c92fbcb70d4da439c82b4852d.jpg%22%2C+%22title%22%3A+%22%D0%9D%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%22%7D+%5D%2C+%22directors%22%3A%5B+%7B+%22name_ru%22%3A%22%D0%A2%D0%BE%D0%BD%D0%B8+%D0%9A%D1%8D%D0%B9%22%2C+%22photo%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Fperson%2Flarge%2F9a%2F33%2F9a331dcb850afeea0a3a1caafc193f5c.jpg%22%2C+%22id%22%3A75006%2C+%22name_en%22%3A%22Tony+Kaye%22+%7D+%5D%2C+%22actors%22%3A%5B+%7B+%22name_ru%22%3A%22%D0%A1%D1%82%D1%8D%D0%B9%D1%81%D0%B8+%D0%9A%D0%B8%D1%87%22%2C+%22photo%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Fperson%2Flarge%2F2b%2F22%2F2b22df0b43020a64f06e4e03a93dd6e2.jpg%22%2C+%22id%22%3A67145%2C+%22name_en%22%3A%22Stacy+Keach%22+%7D%2C+%7B+%22name_ru%22%3A%22%D0%AD%D0%B4%D0%B2%D0%B0%D1%80%D0%B4+%D0%A4%D0%B5%D1%80%D0%BB%D0%BE%D0%BD%D0%B3%22%2C+%22photo%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Fperson%2Flarge%2F30%2F3b%2F303b11042e2ca480604a5ee836306286.jpg%22%2C+%22id%22%3A67799%2C+%22name_en%22%3A%22Edward+Furlong%22+%7D%2C+%7B+%22name_ru%22%3A%22%D0%9A%D1%80%D0%B8%D1%81%D1%82%D0%BE%D1%84%D0%B5%D1%80+%D0%9C%D0%B0%D1%81%D1%82%D0%B5%D1%80%D1%81%D0%BE%D0%BD%22%2C+%22photo%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Fperson%2Flarge%2F59%2Fe3%2F59e3d230f4e9676746c305b00ff248ae.jpg%22%2C+%22id%22%3A69220%2C+%22name_en%22%3A%22Christopher+Masterson%22+%7D%2C+%7B+%22name_ru%22%3A%22%D0%AD%D0%B4%D0%B2%D0%B0%D1%80%D0%B4+%D0%9D%D0%BE%D1%80%D1%82%D0%BE%D0%BD%22%2C+%22photo%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Fperson%2Flarge%2F40%2F52%2F4052ced1931eb204786b62b4c176190e.jpg%22%2C+%22id%22%3A70962%2C+%22name_en%22%3A%22Edward+Norton%22+%7D%2C+%7B+%22name_ru%22%3A%22%D0%94%27%D0%90%D0%BD%D0%B4%D0%B6%D0%B5%D0%BB%D0%BE+%D0%91%D0%B5%D0%B2%D0%B5%D1%80%D0%BB%D0%B8%22%2C+%22photo%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Fperson%2Flarge%2Ff2%2F1b%2Ff21ba669096d07b50207f8cb59898953.jpg%22%2C+%22id%22%3A71356%2C+%22name_en%22%3A%22D%27Angelo+Beverly%22+%7D%2C+%7B+%22name_ru%22%3A%22%D0%9A%D0%B5%D1%80%D0%B0%D0%BC+%D0%9C%D0%B0%D0%BB%D0%B8%D0%BA%D0%B8-%D0%A1%D0%B0%D0%BD%D1%87%D0%B5%D1%81%22%2C+%22photo%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Fperson%2Flarge%2F79%2Fc2%2F79c20426702775ec5e41514645a9e607.jpg%22%2C+%22id%22%3A75012%2C+%22name_en%22%3A%22Keram+Malicki-Sanchez%22+%7D%2C+%7B+%22name_ru%22%3A%22%D0%90%D0%BB%D0%B5%D0%BA%D1%81+%D0%A1%D0%BE%D0%BB%22%2C+%22photo%22%3A%22http%3A%2F%2Fst1.imhonet.ru%2Fperson%2Flarge%2Fe8%2F70%2Fe87004bcf08fea80d7374f20c2e059ed.jpg%22%2C+%22id%22%3A75016%2C+%22name_en%22%3A%22Alex+Sol%22+%7D+%5D%2C+%22title_ru%22%3A%22%D0%90%D0%BC%D0%B5%D1%80%D0%B8%D0%BA%D0%B0%D0%BD%D1%81%D0%BA%D0%B0%D1%8F+%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F+%D0%98%D0%BA%D1%81%22%2C+%22year%22%3A1998%2C+%22duration%22%3A119%2C+%22id%22%3A187735%7D'
          2        DO_ICALL                                         $1      
          3        ASSIGN                                                   !0, $1
          4      > RETURN                                                   1

Function r:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 33
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 33
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 10
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 14
Branch analysis from position: 12
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 26
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 26
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 26
Branch analysis from position: 26
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
filename:       /in/mt4b9
function name:  r
number of ops:  35
compiled vars:  !0 = $obj, !1 = $val, !2 = $name, !3 = $type, !4 = $items
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    4     1      > FE_RESET_R                                       $5      !0, ->33
          2    > > FE_FETCH_R                                       ~6      $5, !1, ->33
          3    >   ASSIGN                                                   !2, ~6
    5     4        INIT_FCALL                                               'is_numeric'
          5        SEND_VAR                                                 !1
          6        DO_ICALL                                         $8      
          7      > JMPZ                                                     $8, ->10
    6     8    >   ASSIGN                                                   !3, 'numeric'
          9      > JMP                                                      ->26
    7    10    >   TYPE_CHECK                                   64          !1
         11      > JMPZ                                                     ~10, ->14
    8    12    >   ASSIGN                                                   !3, 'string'
         13      > JMP                                                      ->26
    9    14    >   TYPE_CHECK                                  128          !1
         15      > JMPZ                                                     ~12, ->26
   10    16    >   ASSIGN                                                   !3, 'array'
   12    17        FETCH_DIM_R                                      ~14     !1, 0
         18        TYPE_CHECK                                  256          ~14
         19      > JMPZ                                                     ~15, ->26
   13    20    >   INIT_FCALL_BY_NAME                                       'r'
         21        CHECK_FUNC_ARG                                           
         22        FETCH_DIM_FUNC_ARG                               $16     !1, 0
         23        SEND_FUNC_ARG                                            $16
         24        DO_FCALL                                      0  $17     
         25        ASSIGN                                                   !4, $17
   17    26    >   ECHO                                                     '%0A'
         27        ECHO                                                     '%22'
         28        ECHO                                                     !2
         29        ECHO                                                     '%22%3A+%7B%22type%22%3A+'
         30        ECHO                                                     !3
         31        ECHO                                                     '%2C+%22required%22%3A+true%7D%2C'
    4    32      > JMP                                                      ->2
         33    >   FE_FREE                                                  $5
   19    34      > RETURN                                                   null

End of function r

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
158.6 ms | 1408 KiB | 17 Q