3v4l.org

run code in 500+ PHP versions simultaneously
<?php $actual = date_create(); $expected = date_create(); $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, $actualClone > $expectedUpper);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/vvvWU
function name:  (null)
number of ops:  61
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
-----------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                                   'date_create'
          1        DO_ICALL                                             $7      
          2        ASSIGN                                                       !0, $7
    3     3        INIT_FCALL                                                   'date_create'
          4        DO_ICALL                                             $9      
          5        ASSIGN                                                       !1, $9
    4     6        INIT_FCALL                                                   'abs'
          7        SEND_VAL                                                     0.5
          8        DO_ICALL                                             $11     
          9        ASSIGN                                                       !2, $11
    5    10        NEW                                                  $13     'DateInterval'
         11        ROPE_INIT                                         3  ~16     'PT'
         12        CAST                                              4  ~14     !2
         13        ROPE_ADD                                          1  ~16     ~16, ~14
         14        ROPE_END                                          2  ~15     ~16, 'S'
         15        SEND_VAL_EX                                                  ~15
         16        DO_FCALL                                          0          
         17        ASSIGN                                                       !3, $13
    6    18        INIT_FCALL                                                   'floor'
         19        SEND_VAR                                                     !2
         20        DO_ICALL                                             $21     
         21        SUB                                                  ~22     !2, $21
         22        ASSIGN_OBJ                                                   !3, 'f'
         23        OP_DATA                                                      ~22
    8    24        CLONE                                                ~23     !0
    9    25        INIT_METHOD_CALL                                             ~23, 'setTimezone'
         26        NEW                                                  $24     'DateTimeZone'
         27        SEND_VAL_EX                                                  'UTC'
         28        DO_FCALL                                          0          
         29        SEND_VAR_NO_REF_EX                                           $24
         30        DO_FCALL                                          0  $26     
    8    31        ASSIGN                                                       !4, $26
   11    32        CLONE                                                ~28     !1
   12    33        INIT_METHOD_CALL                                             ~28, 'setTimezone'
         34        NEW                                                  $29     'DateTimeZone'
         35        SEND_VAL_EX                                                  'UTC'
         36        DO_FCALL                                          0          
         37        SEND_VAR_NO_REF_EX                                           $29
         38        DO_FCALL                                          0  $31     
   13    39        INIT_METHOD_CALL                                             $31, 'sub'
         40        SEND_VAR_EX                                                  !3
         41        DO_FCALL                                          0  $32     
   11    42        ASSIGN                                                       !5, $32
   16    43        CLONE                                                ~34     !1
   17    44        INIT_METHOD_CALL                                             ~34, 'setTimezone'
         45        NEW                                                  $35     'DateTimeZone'
         46        SEND_VAL_EX                                                  'UTC'
         47        DO_FCALL                                          0          
         48        SEND_VAR_NO_REF_EX                                           $35
         49        DO_FCALL                                          0  $37     
   18    50        INIT_METHOD_CALL                                             $37, 'add'
         51        SEND_VAR_EX                                                  !3
         52        DO_FCALL                                          0  $38     
   16    53        ASSIGN                                                       !6, $38
   20    54        INIT_FCALL                                                   'var_dump'
         55        IS_SMALLER                                           ~40     !4, !5
         56        SEND_VAL                                                     ~40
         57        IS_SMALLER                                           ~41     !6, !4
         58        SEND_VAL                                                     ~41
         59        DO_ICALL                                                     
         60      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
127.49 ms | 486 KiB | 11 Q