3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Element { private $single, $tag, $value, $attr=array(); public function __construct($tag, $single = false) { $this->tag = $tag; $this->single = $single; } public function Value($value) { $this->value = $value; } public function AddAttr($attr, $list = false) { if ($list) { array_merge($this->attr, $list); } else { array_push($this->attr, $attr); } } public function GetAttr($name = null) { if ($i === null) { return $this->attr; } else { foreach($this->attr as $try) { if ($try->Name() === $name) { return $this->attr[$name]; } } return new Attribute(""); } } public function SetAttr($name, $value) { $exist = false; foreach($this->attr as $try) { if ($try->Name() === $name) { $try->Value($value); $exist = true; } } if (!$exist) { array_push($this->attr, new Attr($name, $value)); } } public function AttrFromString($string) { $items = explode(" ", $string); $newlist = array(); foreach($items as $yes) { if (strpos($yes, "=")!==false) { $as = explode('=', $yes); } else { $as[0] = $yes; $as[1] = ""; } if (substr($as[1], 0,1) == "'" || substr($as[1], 0,1) == '"') { $as[1] = substr($as[1],1,strlen($as[1])-2); } var_dump($as); array_push($newlist, new Attribute($as[0], $as[1])); } var_dump($newlist); array_merge($this->attr, $newlist); } public function RemoveAttr($name = null) { if ($name === null) { $this->attr = array(); } else { for($i = 0; $i < count($this->attr); $i++) { if ($this->attr[$i]->Name() === $name) { unset($this->attr[$i]); } } } } public function __toString() { return "<" . $this->tag . " " . implode(" ",$this->attr) . ($this->single ? (!empty($this->value) ? "value='" . $this->value ."'" : "" ). "/>" : '>' . $this->value . '</'.$this->tag.'>'); } } define('NewLine', "<br />"); define('DocType', '<!DOCTYPE html>'); class Attribute { private $name, $value; public function __construct($name, $value = "") { $this->name = $name; $this->value = $value; } public function Name($name = null) { if ($name === null) { return $this->name; } else { $this->name = $name; } } public function Value($value = null) { if ($value === null) { return $this->value; } else { $this->value = $value; } } public function __toString() { if (is_array($this->value)) { $code = ""; foreach ($this->value as $key => $value) { $code .= $key . ":" . $value . ';'; } } return ($this->value === true ? $this->name : ($this->value === false ? "" : ($this->value === "" ? $this->name : $this->name . "='".(is_array($this->value) ? $code : $this->value ). "'"))); } } $a = new Element("a"); $a->AddAttr(new Attribute("href", "http://twitter.nl")); $a->AddAttr(new Attribute("target", "_blank")); $span = new Element("span"); $span->AddAttr(new Attribute("style", array("color" => "orange","background-color" => "green"))); $span->Value("doei"); //Ads Doei in Span $span->AttrFromString("rel='none'"); //Adds Rel to None $img = new Element("img", true); //Makes Img Element $img->AddAttr(new Attribute("src", "https://www.google.nl/images/srpr/logo4w.png")); //Adds SRC $a->RemoveAttr("href"); //Removes Href Attribute $a->Value($span . NewLine. "hello world" .NewLine . $img); //Changes Inner Html of the A echo $a;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4nNIp
function name:  (null)
number of ops:  71
compiled vars:  !0 = $a, !1 = $span, !2 = $img
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   DECLARE_CLASS                                            'element'
   83     1        INIT_FCALL                                               'define'
          2        SEND_VAL                                                 'NewLine'
          3        SEND_VAL                                                 '%3Cbr+%2F%3E'
          4        DO_ICALL                                                 
   84     5        INIT_FCALL                                               'define'
          6        SEND_VAL                                                 'DocType'
          7        SEND_VAL                                                 '%3C%21DOCTYPE+html%3E'
          8        DO_ICALL                                                 
   85     9        DECLARE_CLASS                                            'attribute'
  118    10        NEW                                              $5      'Element'
         11        SEND_VAL_EX                                              'a'
         12        DO_FCALL                                      0          
         13        ASSIGN                                                   !0, $5
  119    14        INIT_METHOD_CALL                                         !0, 'AddAttr'
         15        NEW                                              $8      'Attribute'
         16        SEND_VAL_EX                                              'href'
         17        SEND_VAL_EX                                              'http%3A%2F%2Ftwitter.nl'
         18        DO_FCALL                                      0          
         19        SEND_VAR_NO_REF_EX                                       $8
         20        DO_FCALL                                      0          
  120    21        INIT_METHOD_CALL                                         !0, 'AddAttr'
         22        NEW                                              $11     'Attribute'
         23        SEND_VAL_EX                                              'target'
         24        SEND_VAL_EX                                              '_blank'
         25        DO_FCALL                                      0          
         26        SEND_VAR_NO_REF_EX                                       $11
         27        DO_FCALL                                      0          
  121    28        NEW                                              $14     'Element'
         29        SEND_VAL_EX                                              'span'
         30        DO_FCALL                                      0          
         31        ASSIGN                                                   !1, $14
  122    32        INIT_METHOD_CALL                                         !1, 'AddAttr'
         33        NEW                                              $17     'Attribute'
         34        SEND_VAL_EX                                              'style'
         35        SEND_VAL_EX                                              <array>
         36        DO_FCALL                                      0          
         37        SEND_VAR_NO_REF_EX                                       $17
         38        DO_FCALL                                      0          
  123    39        INIT_METHOD_CALL                                         !1, 'Value'
         40        SEND_VAL_EX                                              'doei'
         41        DO_FCALL                                      0          
  124    42        INIT_METHOD_CALL                                         !1, 'AttrFromString'
         43        SEND_VAL_EX                                              'rel%3D%27none%27'
         44        DO_FCALL                                      0          
  125    45        NEW                                              $22     'Element'
         46        SEND_VAL_EX                                              'img'
         47        SEND_VAL_EX                                              <true>
         48        DO_FCALL                                      0          
         49        ASSIGN                                                   !2, $22
  126    50        INIT_METHOD_CALL                                         !2, 'AddAttr'
         51        NEW                                              $25     'Attribute'
         52        SEND_VAL_EX                                              'src'
         53        SEND_VAL_EX                                              'https%3A%2F%2Fwww.google.nl%2Fimages%2Fsrpr%2Flogo4w.png'
         54        DO_FCALL                                      0          
         55        SEND_VAR_NO_REF_EX                                       $25
         56        DO_FCALL                                      0          
  127    57        INIT_METHOD_CALL                                         !0, 'RemoveAttr'
         58        SEND_VAL_EX                                              'href'
         59        DO_FCALL                                      0          
  128    60        INIT_METHOD_CALL                                         !0, 'Value'
         61        FETCH_CONSTANT                                   ~29     'NewLine'
         62        CONCAT                                           ~30     !1, ~29
         63        CONCAT                                           ~31     ~30, 'hello+world'
         64        FETCH_CONSTANT                                   ~32     'NewLine'
         65        CONCAT                                           ~33     ~31, ~32
         66        CONCAT                                           ~34     ~33, !2
         67        SEND_VAL_EX                                              ~34
         68        DO_FCALL                                      0          
  131    69        ECHO                                                     !0
         70      > RETURN                                                   1

Class Element:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4nNIp
function name:  __construct
number of ops:  7
compiled vars:  !0 = $tag, !1 = $single
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      <false>
    5     2        ASSIGN_OBJ                                               'tag'
          3        OP_DATA                                                  !0
    6     4        ASSIGN_OBJ                                               'single'
          5        OP_DATA                                                  !1
    7     6      > RETURN                                                   null

End of function __construct

Function value:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4nNIp
function name:  Value
number of ops:  4
compiled vars:  !0 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    8     0  E >   RECV                                             !0      
    9     1        ASSIGN_OBJ                                               'value'
          2        OP_DATA                                                  !0
   10     3      > RETURN                                                   null

End of function value

Function addattr:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 9
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 14
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4nNIp
function name:  AddAttr
number of ops:  15
compiled vars:  !0 = $attr, !1 = $list
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   11     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      <false>
   12     2      > JMPZ                                                     !1, ->9
   13     3    >   INIT_FCALL                                               'array_merge'
          4        FETCH_OBJ_R                                      ~2      'attr'
          5        SEND_VAL                                                 ~2
          6        SEND_VAR                                                 !1
          7        DO_ICALL                                                 
          8      > JMP                                                      ->14
   16     9    >   INIT_FCALL                                               'array_push'
         10        FETCH_OBJ_W                                      $4      'attr'
         11        SEND_REF                                                 $4
         12        SEND_VAR                                                 !0
         13        DO_ICALL                                                 
   18    14    > > RETURN                                                   null

End of function addattr

Function getattr:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 6
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
2 jumps found. (Code = 77) Position 1 = 8, Position 2 = 18
Branch analysis from position: 8
2 jumps found. (Code = 78) Position 1 = 9, Position 2 = 18
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 17
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 8
Branch analysis from position: 8
Branch analysis from position: 18
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 18
filename:       /in/4nNIp
function name:  GetAttr
number of ops:  24
compiled vars:  !0 = $name, !1 = $i, !2 = $try
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   19     0  E >   RECV_INIT                                        !0      null
   20     1        TYPE_CHECK                                    2          !1
          2      > JMPZ                                                     ~3, ->6
   21     3    >   FETCH_OBJ_R                                      ~4      'attr'
          4      > RETURN                                                   ~4
          5*       JMP                                                      ->23
   24     6    >   FETCH_OBJ_R                                      ~5      'attr'
          7      > FE_RESET_R                                       $6      ~5, ->18
          8    > > FE_FETCH_R                                               $6, !2, ->18
   25     9    >   INIT_METHOD_CALL                                         !2, 'Name'
         10        DO_FCALL                                      0  $7      
         11        IS_IDENTICAL                                             !0, $7
         12      > JMPZ                                                     ~8, ->17
   26    13    >   FETCH_OBJ_R                                      ~9      'attr'
         14        FETCH_DIM_R                                      ~10     ~9, !0
         15        FE_FREE                                                  $6
         16      > RETURN                                                   ~10
   24    17    > > JMP                                                      ->8
         18    >   FE_FREE                                                  $6
   29    19        NEW                                              $11     'Attribute'
         20        SEND_VAL_EX                                              ''
         21        DO_FCALL                                      0          
         22      > RETURN                                                   $11
   31    23*     > RETURN                                                   null

End of function getattr

Function setattr:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 5, Position 2 = 15
Branch analysis from position: 5
2 jumps found. (Code = 78) Position 1 = 6, Position 2 = 15
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 14
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
Branch analysis from position: 14
Branch analysis from position: 15
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 27
Branch analysis from position: 18
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
Branch analysis from position: 15
filename:       /in/4nNIp
function name:  SetAttr
number of ops:  28
compiled vars:  !0 = $name, !1 = $value, !2 = $exist, !3 = $try
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   32     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   33     2        ASSIGN                                                   !2, <false>
   34     3        FETCH_OBJ_R                                      ~5      'attr'
          4      > FE_RESET_R                                       $6      ~5, ->15
          5    > > FE_FETCH_R                                               $6, !3, ->15
   35     6    >   INIT_METHOD_CALL                                         !3, 'Name'
          7        DO_FCALL                                      0  $7      
          8        IS_IDENTICAL                                             !0, $7
          9      > JMPZ                                                     ~8, ->14
   36    10    >   INIT_METHOD_CALL                                         !3, 'Value'
         11        SEND_VAR_EX                                              !1
         12        DO_FCALL                                      0          
   37    13        ASSIGN                                                   !2, <true>
   34    14    > > JMP                                                      ->5
         15    >   FE_FREE                                                  $6
   40    16        BOOL_NOT                                         ~11     !2
         17      > JMPZ                                                     ~11, ->27
   41    18    >   INIT_FCALL                                               'array_push'
         19        FETCH_OBJ_W                                      $12     'attr'
         20        SEND_REF                                                 $12
         21        NEW                                              $13     'Attr'
         22        SEND_VAR_EX                                              !0
         23        SEND_VAR_EX                                              !1
         24        DO_FCALL                                      0          
         25        SEND_VAR                                                 $13
         26        DO_ICALL                                                 
   44    27    > > RETURN                                                   null

End of function setattr

Function attrfromstring:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 8, Position 2 = 69
Branch analysis from position: 8
2 jumps found. (Code = 78) Position 1 = 9, Position 2 = 69
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 21
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
2 jumps found. (Code = 47) Position 1 = 33, Position 2 = 41
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 42, Position 2 = 53
Branch analysis from position: 42
1 jumps found. (Code = 42) Position 1 = 8
Branch analysis from position: 8
Branch analysis from position: 53
Branch analysis from position: 41
Branch analysis from position: 21
2 jumps found. (Code = 47) Position 1 = 33, Position 2 = 41
Branch analysis from position: 33
Branch analysis from position: 41
Branch analysis from position: 69
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 69
filename:       /in/4nNIp
function name:  AttrFromString
number of ops:  79
compiled vars:  !0 = $string, !1 = $items, !2 = $newlist, !3 = $yes, !4 = $as
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   45     0  E >   RECV                                             !0      
   46     1        INIT_FCALL                                               'explode'
          2        SEND_VAL                                                 '+'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $5      
          5        ASSIGN                                                   !1, $5
   47     6        ASSIGN                                                   !2, <array>
   48     7      > FE_RESET_R                                       $8      !1, ->69
          8    > > FE_FETCH_R                                               $8, !3, ->69
   49     9    >   INIT_FCALL                                               'strpos'
         10        SEND_VAR                                                 !3
         11        SEND_VAL                                                 '%3D'
         12        DO_ICALL                                         $9      
         13        TYPE_CHECK                                  1018          $9
         14      > JMPZ                                                     ~10, ->21
   50    15    >   INIT_FCALL                                               'explode'
         16        SEND_VAL                                                 '%3D'
         17        SEND_VAR                                                 !3
         18        DO_ICALL                                         $11     
         19        ASSIGN                                                   !4, $11
         20      > JMP                                                      ->25
   53    21    >   ASSIGN_DIM                                               !4, 0
         22        OP_DATA                                                  !3
   54    23        ASSIGN_DIM                                               !4, 1
         24        OP_DATA                                                  ''
   56    25    >   INIT_FCALL                                               'substr'
         26        FETCH_DIM_R                                      ~15     !4, 1
         27        SEND_VAL                                                 ~15
         28        SEND_VAL                                                 0
         29        SEND_VAL                                                 1
         30        DO_ICALL                                         $16     
         31        IS_EQUAL                                         ~17     $16, '%27'
         32      > JMPNZ_EX                                         ~17     ~17, ->41
         33    >   INIT_FCALL                                               'substr'
         34        FETCH_DIM_R                                      ~18     !4, 1
         35        SEND_VAL                                                 ~18
         36        SEND_VAL                                                 0
         37        SEND_VAL                                                 1
         38        DO_ICALL                                         $19     
         39        IS_EQUAL                                         ~20     $19, '%22'
         40        BOOL                                             ~17     ~20
         41    > > JMPZ                                                     ~17, ->53
   57    42    >   INIT_FCALL                                               'substr'
         43        FETCH_DIM_R                                      ~22     !4, 1
         44        SEND_VAL                                                 ~22
         45        SEND_VAL                                                 1
         46        FETCH_DIM_R                                      ~23     !4, 1
         47        STRLEN                                           ~24     ~23
         48        SUB                                              ~25     ~24, 2
         49        SEND_VAL                                                 ~25
         50        DO_ICALL                                         $26     
         51        ASSIGN_DIM                                               !4, 1
         52        OP_DATA                                                  $26
   59    53    >   INIT_FCALL                                               'var_dump'
         54        SEND_VAR                                                 !4
         55        DO_ICALL                                                 
   60    56        INIT_FCALL                                               'array_push'
         57        SEND_REF                                                 !2
         58        NEW                                              $28     'Attribute'
         59        CHECK_FUNC_ARG                                           
         60        FETCH_DIM_FUNC_ARG                               $29     !4, 0
         61        SEND_FUNC_ARG                                            $29
         62        CHECK_FUNC_ARG                                           
         63        FETCH_DIM_FUNC_ARG                               $30     !4, 1
         64        SEND_FUNC_ARG                                            $30
         65        DO_FCALL                                      0          
         66        SEND_VAR                                                 $28
         67        DO_ICALL                                                 
   48    68      > JMP                                                      ->8
         69    >   FE_FREE                                                  $8
   62    70        INIT_FCALL                                               'var_dump'
         71        SEND_VAR                                                 !2
         72        DO_ICALL                                                 
   63    73        INIT_FCALL                                               'array_merge'
         74        FETCH_OBJ_R                                      ~34     'attr'
         75        SEND_VAL                                                 ~34
         76        SEND_VAR                                                 !2
         77        DO_ICALL                                                 
   64    78      > RETURN                                                   null

End of function attrfromstring

Function removeattr:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 6
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 21
Branch analysis from position: 21
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 17
Branch analysis from position: 17
2 jumps found. (Code = 44) Position 1 = 21, Position 2 = 8
Branch analysis from position: 21
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 16
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 21, Position 2 = 8
Branch analysis from position: 21
Branch analysis from position: 8
Branch analysis from position: 16
filename:       /in/4nNIp
function name:  RemoveAttr
number of ops:  22
compiled vars:  !0 = $name, !1 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   65     0  E >   RECV_INIT                                        !0      null
   66     1        TYPE_CHECK                                    2          !0
          2      > JMPZ                                                     ~2, ->6
   67     3    >   ASSIGN_OBJ                                               'attr'
          4        OP_DATA                                                  <array>
          5      > JMP                                                      ->21
   70     6    >   ASSIGN                                                   !1, 0
          7      > JMP                                                      ->17
   71     8    >   FETCH_OBJ_R                                      ~5      'attr'
          9        FETCH_DIM_R                                      ~6      ~5, !1
         10        INIT_METHOD_CALL                                         ~6, 'Name'
         11        DO_FCALL                                      0  $7      
         12        IS_IDENTICAL                                             !0, $7
         13      > JMPZ                                                     ~8, ->16
   72    14    >   FETCH_OBJ_UNSET                                  $9      'attr'
         15        UNSET_DIM                                                $9, !1
   70    16    >   PRE_INC                                                  !1
         17    >   FETCH_OBJ_R                                      ~11     'attr'
         18        COUNT                                            ~12     ~11
         19        IS_SMALLER                                               !1, ~12
         20      > JMPNZ                                                    ~13, ->8
   77    21    > > RETURN                                                   null

End of function removeattr

Function __tostring:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 23
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 19
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
Branch analysis from position: 23
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4nNIp
function name:  __toString
number of ops:  35
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   80     0  E >   FETCH_OBJ_R                                      ~0      'tag'
          1        CONCAT                                           ~1      '%3C', ~0
          2        CONCAT                                           ~2      ~1, '+'
          3        INIT_FCALL                                               'implode'
          4        SEND_VAL                                                 '+'
          5        FETCH_OBJ_R                                      ~3      'attr'
          6        SEND_VAL                                                 ~3
          7        DO_ICALL                                         $4      
          8        CONCAT                                           ~5      ~2, $4
          9        FETCH_OBJ_R                                      ~6      'single'
         10      > JMPZ                                                     ~6, ->23
         11    >   ISSET_ISEMPTY_PROP_OBJ                           ~7      'value'
         12        BOOL_NOT                                         ~8      ~7
         13      > JMPZ                                                     ~8, ->19
         14    >   FETCH_OBJ_R                                      ~9      'value'
         15        CONCAT                                           ~10     'value%3D%27', ~9
         16        CONCAT                                           ~11     ~10, '%27'
         17        QM_ASSIGN                                        ~12     ~11
         18      > JMP                                                      ->20
         19    >   QM_ASSIGN                                        ~12     ''
         20    >   CONCAT                                           ~13     ~12, '%2F%3E'
         21        QM_ASSIGN                                        ~14     ~13
         22      > JMP                                                      ->30
         23    >   FETCH_OBJ_R                                      ~15     'value'
         24        CONCAT                                           ~16     '%3E', ~15
         25        CONCAT                                           ~17     ~16, '%3C%2F'
         26        FETCH_OBJ_R                                      ~18     'tag'
         27        CONCAT                                           ~19     ~17, ~18
         28        CONCAT                                           ~20     ~19, '%3E'
         29        QM_ASSIGN                                        ~14     ~20
         30    >   CONCAT                                           ~21     ~5, ~14
         31        VERIFY_RETURN_TYPE                                       ~21
         32      > RETURN                                                   ~21
   81    33*       VERIFY_RETURN_TYPE                                       
         34*     > RETURN                                                   null

End of function __tostring

End of class Element.

Class Attribute:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4nNIp
function name:  __construct
number of ops:  7
compiled vars:  !0 = $name, !1 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   87     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      ''
   88     2        ASSIGN_OBJ                                               'name'
          3        OP_DATA                                                  !0
   89     4        ASSIGN_OBJ                                               'value'
          5        OP_DATA                                                  !1
   90     6      > RETURN                                                   null

End of function __construct

Function name:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 6
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4nNIp
function name:  Name
number of ops:  9
compiled vars:  !0 = $name
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   91     0  E >   RECV_INIT                                        !0      null
   92     1        TYPE_CHECK                                    2          !0
          2      > JMPZ                                                     ~1, ->6
   93     3    >   FETCH_OBJ_R  

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
164.42 ms | 1420 KiB | 29 Q