3v4l.org

run code in 300+ PHP versions simultaneously
<?php date_default_timezone_set("UTC"); $actual = date_create("2022-07-24 09:30:23.682558"); $expected = date_create("2022-07-24 09:30:23.682558"); $absDelta = abs(0.5); $delta = new \DateInterval(sprintf('PT%dS', $absDelta)); $delta->f = $absDelta - floor($absDelta); $actualClone = (clone $actual) ->setTimezone(new DateTimeZone('UTC')); $expectedLower = (clone $expected) ->setTimezone(new DateTimeZone('UTC')) ->sub($delta); $expectedUpper = (clone $expected) ->setTimezone(new DateTimeZone('UTC')) ->add($delta); var_dump($actualClone, $expectedLower, $expectedUpper); var_dump($actualClone < $expectedLower, $actualClone > $expectedUpper);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9FElH
function name:  (null)
number of ops:  71
compiled vars:  !0 = $actual, !1 = $expected, !2 = $absDelta, !3 = $delta, !4 = $actualClone, !5 = $expectedLower, !6 = $expectedUpper
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'date_default_timezone_set'
          1        SEND_VAL                                                 'UTC'
          2        DO_ICALL                                                 
    4     3        INIT_FCALL                                               'date_create'
          4        SEND_VAL                                                 '2022-07-24+09%3A30%3A23.682558'
          5        DO_ICALL                                         $8      
          6        ASSIGN                                                   !0, $8
    5     7        INIT_FCALL                                               'date_create'
          8        SEND_VAL                                                 '2022-07-24+09%3A30%3A23.682558'
          9        DO_ICALL                                         $10     
         10        ASSIGN                                                   !1, $10
    6    11        INIT_FCALL                                               'abs'
         12        SEND_VAL                                                 0.5
         13        DO_ICALL                                         $12     
         14        ASSIGN                                                   !2, $12
    7    15        NEW                                              $14     'DateInterval'
         16        INIT_FCALL                                               'sprintf'
         17        SEND_VAL                                                 'PT%25dS'
         18        SEND_VAR                                                 !2
         19        DO_ICALL                                         $15     
         20        SEND_VAR_NO_REF_EX                                       $15
         21        DO_FCALL                                      0          
         22        ASSIGN                                                   !3, $14
    8    23        INIT_FCALL                                               'floor'
         24        SEND_VAR                                                 !2
         25        DO_ICALL                                         $19     
         26        SUB                                              ~20     !2, $19
         27        ASSIGN_OBJ                                               !3, 'f'
         28        OP_DATA                                                  ~20
   10    29        CLONE                                            ~21     !0
   11    30        INIT_METHOD_CALL                                         ~21, 'setTimezone'
         31        NEW                                              $22     'DateTimeZone'
         32        SEND_VAL_EX                                              'UTC'
         33        DO_FCALL                                      0          
         34        SEND_VAR_NO_REF_EX                                       $22
         35        DO_FCALL                                      0  $24     
   10    36        ASSIGN                                                   !4, $24
   13    37        CLONE                                            ~26     !1
   14    38        INIT_METHOD_CALL                                         ~26, 'setTimezone'
         39        NEW                                              $27     'DateTimeZone'
         40        SEND_VAL_EX                                              'UTC'
         41        DO_FCALL                                      0          
         42        SEND_VAR_NO_REF_EX                                       $27
         43        DO_FCALL                                      0  $29     
   15    44        INIT_METHOD_CALL                                         $29, 'sub'
         45        SEND_VAR_EX                                              !3
         46        DO_FCALL                                      0  $30     
   13    47        ASSIGN                                                   !5, $30
   18    48        CLONE                                            ~32     !1
   19    49        INIT_METHOD_CALL                                         ~32, 'setTimezone'
         50        NEW                                              $33     'DateTimeZone'
         51        SEND_VAL_EX                                              'UTC'
         52        DO_FCALL                                      0          
         53        SEND_VAR_NO_REF_EX                                       $33
         54        DO_FCALL                                      0  $35     
   20    55        INIT_METHOD_CALL                                         $35, 'add'
         56        SEND_VAR_EX                                              !3
         57        DO_FCALL                                      0  $36     
   18    58        ASSIGN                                                   !6, $36
   22    59        INIT_FCALL                                               'var_dump'
         60        SEND_VAR                                                 !4
         61        SEND_VAR                                                 !5
         62        SEND_VAR                                                 !6
         63        DO_ICALL                                                 
   23    64        INIT_FCALL                                               'var_dump'
         65        IS_SMALLER                                       ~39     !4, !5
         66        SEND_VAL                                                 ~39
         67        IS_SMALLER                                       ~40     !6, !4
         68        SEND_VAL                                                 ~40
         69        DO_ICALL                                                 
         70      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
155.35 ms | 1021 KiB | 19 Q