3v4l.org

run code in 500+ PHP versions simultaneously
<?php class CustomDateTime extends \DateTime {} $dts = serialize(new \DateTime()); $dtis = serialize(new \DateTimeImmutable()); $cdts = serialize(new \CustomDateTime()); echo get_class(unserialize($dts, ['allowed_classes' => [\DateTime::class]])) . PHP_EOL; echo get_class(unserialize($dtis, ['allowed_classes' => [\DateTime::class]])) . PHP_EOL; echo PHP_EOL; echo get_class(unserialize($dts, ['allowed_classes' => [\DateTimeImmutable::class]])) . PHP_EOL; echo get_class(unserialize($dtis, ['allowed_classes' => [\DateTimeImmutable::class]])) . PHP_EOL; echo PHP_EOL; echo get_class(unserialize($dts, ['allowed_classes' => [\DateTimeInterface::class]])) . PHP_EOL; echo get_class(unserialize($dtis, ['allowed_classes' => [\DateTimeInterface::class]])) . PHP_EOL; echo PHP_EOL; echo get_class(unserialize($cdts, ['allowed_classes' => [\DateTime::class]])) . PHP_EOL; echo get_class(unserialize($cdts, ['allowed_classes' => [\DateTime::class]])) . PHP_EOL;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/tdHfl
function name:  (null)
number of ops:  78
compiled vars:  !0 = $dts, !1 = $dtis, !2 = $cdts
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    5     0  E >   INIT_FCALL                                                   'serialize'
          1        NEW                                                  $3      'DateTime'
          2        DO_FCALL                                          0          
          3        SEND_VAR                                                     $3
          4        DO_ICALL                                             $5      
          5        ASSIGN                                                       !0, $5
    6     6        INIT_FCALL                                                   'serialize'
          7        NEW                                                  $7      'DateTimeImmutable'
          8        DO_FCALL                                          0          
          9        SEND_VAR                                                     $7
         10        DO_ICALL                                             $9      
         11        ASSIGN                                                       !1, $9
    7    12        INIT_FCALL                                                   'serialize'
         13        NEW                                                  $11     'CustomDateTime'
         14        DO_FCALL                                          0          
         15        SEND_VAR                                                     $11
         16        DO_ICALL                                             $13     
         17        ASSIGN                                                       !2, $13
    9    18        INIT_FCALL                                                   'unserialize'
         19        SEND_VAR                                                     !0
         20        SEND_VAL                                                     <array>
         21        DO_ICALL                                             $15     
         22        GET_CLASS                                            ~16     $15
         23        CONCAT                                               ~17     ~16, '%0A'
         24        ECHO                                                         ~17
   10    25        INIT_FCALL                                                   'unserialize'
         26        SEND_VAR                                                     !1
         27        SEND_VAL                                                     <array>
         28        DO_ICALL                                             $18     
         29        GET_CLASS                                            ~19     $18
         30        CONCAT                                               ~20     ~19, '%0A'
         31        ECHO                                                         ~20
   11    32        ECHO                                                         '%0A'
   12    33        INIT_FCALL                                                   'unserialize'
         34        SEND_VAR                                                     !0
         35        SEND_VAL                                                     <array>
         36        DO_ICALL                                             $21     
         37        GET_CLASS                                            ~22     $21
         38        CONCAT                                               ~23     ~22, '%0A'
         39        ECHO                                                         ~23
   13    40        INIT_FCALL                                                   'unserialize'
         41        SEND_VAR                                                     !1
         42        SEND_VAL                                                     <array>
         43        DO_ICALL                                             $24     
         44        GET_CLASS                                            ~25     $24
         45        CONCAT                                               ~26     ~25, '%0A'
         46        ECHO                                                         ~26
   14    47        ECHO                                                         '%0A'
   15    48        INIT_FCALL                                                   'unserialize'
         49        SEND_VAR                                                     !0
         50        SEND_VAL                                                     <array>
         51        DO_ICALL                                             $27     
         52        GET_CLASS                                            ~28     $27
         53        CONCAT                                               ~29     ~28, '%0A'
         54        ECHO                                                         ~29
   16    55        INIT_FCALL                                                   'unserialize'
         56        SEND_VAR                                                     !1
         57        SEND_VAL                                                     <array>
         58        DO_ICALL                                             $30     
         59        GET_CLASS                                            ~31     $30
         60        CONCAT                                               ~32     ~31, '%0A'
         61        ECHO                                                         ~32
   17    62        ECHO                                                         '%0A'
   18    63        INIT_FCALL                                                   'unserialize'
         64        SEND_VAR                                                     !2
         65        SEND_VAL                                                     <array>
         66        DO_ICALL                                             $33     
         67        GET_CLASS                                            ~34     $33
         68        CONCAT                                               ~35     ~34, '%0A'
         69        ECHO                                                         ~35
   19    70        INIT_FCALL                                                   'unserialize'
         71        SEND_VAR                                                     !2
         72        SEND_VAL                                                     <array>
         73        DO_ICALL                                             $36     
         74        GET_CLASS                                            ~37     $36
         75        CONCAT                                               ~38     ~37, '%0A'
         76        ECHO                                                         ~38
   20    77      > RETURN                                                       1

Class CustomDateTime: [no user functions]

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
158.93 ms | 2184 KiB | 15 Q