3v4l.org

run code in 500+ PHP versions simultaneously
<?php class DTO { public function __construct( public int $a, public int $b, public int $c, public int $d, public int $e, public int $f, ) {} } $dto = new DTO(1, 2, 3, 4, 5, 6); var_dump($dto); // #PHP 8.2+, with named parameters in arrays $copy = new DTO(...(['d' => 42] + get_object_vars($dto))); var_dump($copy); // #PHP 8.0–1+, with unnamed parameters in arrays $copy2 = new DTO(...array_values(array_merge(get_object_vars($dto), ['d' => 42]))); var_dump($copy2); // #PHP 7.4– : not supported
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/dvtO4
function name:  (null)
number of ops:  43
compiled vars:  !0 = $dto, !1 = $copy, !2 = $copy2
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   14     0  E >   NEW                                                  $3      'DTO'
          1        SEND_VAL_EX                                                  1
          2        SEND_VAL_EX                                                  2
          3        SEND_VAL_EX                                                  3
          4        SEND_VAL_EX                                                  4
          5        SEND_VAL_EX                                                  5
          6        SEND_VAL_EX                                                  6
          7        DO_FCALL                                          0          
          8        ASSIGN                                                       !0, $3
   15     9        INIT_FCALL                                                   'var_dump'
         10        SEND_VAR                                                     !0
         11        DO_ICALL                                                     
   18    12        NEW                                                  $7      'DTO'
         13        INIT_FCALL                                                   'get_object_vars'
         14        SEND_VAR                                                     !0
         15        DO_ICALL                                             $8      
         16        ADD                                                  ~9      <array>, $8
         17        SEND_UNPACK                                                  ~9
         18        CHECK_UNDEF_ARGS                                             
         19        DO_FCALL                                          1          
         20        ASSIGN                                                       !1, $7
   19    21        INIT_FCALL                                                   'var_dump'
         22        SEND_VAR                                                     !1
         23        DO_ICALL                                                     
   23    24        NEW                                                  $13     'DTO'
         25        INIT_FCALL                                                   'array_values'
         26        INIT_FCALL                                                   'array_merge'
         27        INIT_FCALL                                                   'get_object_vars'
         28        SEND_VAR                                                     !0
         29        DO_ICALL                                             $14     
         30        SEND_VAR                                                     $14
         31        SEND_VAL                                                     <array>
         32        DO_ICALL                                             $15     
         33        SEND_VAR                                                     $15
         34        DO_ICALL                                             $16     
         35        SEND_UNPACK                                                  $16
         36        CHECK_UNDEF_ARGS                                             
         37        DO_FCALL                                          1          
   22    38        ASSIGN                                                       !2, $13
   24    39        INIT_FCALL                                                   'var_dump'
         40        SEND_VAR                                                     !2
         41        DO_ICALL                                                     
   26    42      > RETURN                                                       1

Class DTO:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/dvtO4
function name:  __construct
number of ops:  19
compiled vars:  !0 = $a, !1 = $b, !2 = $c, !3 = $d, !4 = $e, !5 = $f
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    5     0  E >   RECV                                                 !0      
    6     1        RECV                                                 !1      
    7     2        RECV                                                 !2      
    8     3        RECV                                                 !3      
    9     4        RECV                                                 !4      
   10     5        RECV                                                 !5      
    5     6        ASSIGN_OBJ                                                   'a'
          7        OP_DATA                                                      !0
    6     8        ASSIGN_OBJ                                                   'b'
          9        OP_DATA                                                      !1
    7    10        ASSIGN_OBJ                                                   'c'
         11        OP_DATA                                                      !2
    8    12        ASSIGN_OBJ                                                   'd'
         13        OP_DATA                                                      !3
    9    14        ASSIGN_OBJ                                                   'e'
         15        OP_DATA                                                      !4
   10    16        ASSIGN_OBJ                                                   'f'
         17        OP_DATA                                                      !5
   11    18      > RETURN                                                       null

End of function __construct

End of class DTO.

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
172.31 ms | 1546 KiB | 17 Q