3v4l.org

run code in 300+ 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.0.0


preferences:
154.93 ms | 1405 KiB | 17 Q