3v4l.org

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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
124.98 ms | 1019 KiB | 18 Q