3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(0); function x($v){ $argv[1] = $v; echo strlen((explode('.',$t=trim('-'==($_=$argv[1])[0]?$n=$_=trim($_,'-'):$_,0)))[1]).($t!==$_?($n?' -':' ').('.'==$t[0]?0:'').trim($t,'.'):''); echo "\n"; } x('-12.32'); x('32'); x('3231.432'); x('-34.0'); x('023'); x('00324.230'); x('10'); x('00.3'); x('0'); x('-0'); x('-0.0'); x('-04.8330'); x('-000000000012345678901234567890000.000012345678901234567890000');
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/hAZrS
function name:  (null)
number of ops:  43
compiled vars:  none
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   3     0  E >   INIT_FCALL                                               'error_reporting'
         1        SEND_VAL                                                 0
         2        DO_ICALL                                                 
  13     3        INIT_FCALL                                               'x'
         4        SEND_VAL                                                 '-12.32'
         5        DO_FCALL                                      0          
  14     6        INIT_FCALL                                               'x'
         7        SEND_VAL                                                 '32'
         8        DO_FCALL                                      0          
  15     9        INIT_FCALL                                               'x'
        10        SEND_VAL                                                 '3231.432'
        11        DO_FCALL                                      0          
  16    12        INIT_FCALL                                               'x'
        13        SEND_VAL                                                 '-34.0'
        14        DO_FCALL                                      0          
  17    15        INIT_FCALL                                               'x'
        16        SEND_VAL                                                 '023'
        17        DO_FCALL                                      0          
  18    18        INIT_FCALL                                               'x'
        19        SEND_VAL                                                 '00324.230'
        20        DO_FCALL                                      0          
  19    21        INIT_FCALL                                               'x'
        22        SEND_VAL                                                 '10'
        23        DO_FCALL                                      0          
  20    24        INIT_FCALL                                               'x'
        25        SEND_VAL                                                 '00.3'
        26        DO_FCALL                                      0          
  21    27        INIT_FCALL                                               'x'
        28        SEND_VAL                                                 '0'
        29        DO_FCALL                                      0          
  22    30        INIT_FCALL                                               'x'
        31        SEND_VAL                                                 '-0'
        32        DO_FCALL                                      0          
  23    33        INIT_FCALL                                               'x'
        34        SEND_VAL                                                 '-0.0'
        35        DO_FCALL                                      0          
  24    36        INIT_FCALL                                               'x'
        37        SEND_VAL                                                 '-04.8330'
        38        DO_FCALL                                      0          
  25    39        INIT_FCALL                                               'x'
        40        SEND_VAL                                                 '-000000000012345678901234567890000.000012345678901234567890000'
        41        DO_FCALL                                      0          
        42      > RETURN                                                   1

Function x:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 19
Branch analysis from position: 11
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 48
Branch analysis from position: 30
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 33
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 39
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 39
Branch analysis from position: 37
Branch analysis from position: 39
Branch analysis from position: 48
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 48
Branch analysis from position: 30
Branch analysis from position: 48
filename:       /in/hAZrS
function name:  x
number of ops:  53
compiled vars:  !0 = $v, !1 = $argv, !2 = $t, !3 = $_, !4 = $n
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   5     0  E >   RECV                                             !0      
   6     1        ASSIGN_ADD                                    0          !1, 1
         2        OP_DATA                                                  !0
   8     3        INIT_FCALL                                               'explode'
         4        SEND_VAL                                                 '.'
         5        INIT_FCALL                                               'trim'
         6        FETCH_DIM_R                                      ~6      !1, 1
         7        QM_ASSIGN                                        $7      !3
         8        FETCH_DIM_R                                      ~8      $7, 0
         9        IS_NOT_EQUAL                                     ~9      ~8, '-'
        10      > JMPZ                                                     ~9, ->19
        11    >   INIT_FCALL                                               'trim'
        12        SEND_VAR                                                 !3
        13        SEND_VAL                                                 '-'
        14        DO_ICALL                                         $10     
        15        QM_ASSIGN                                        $11     !3
        16        QM_ASSIGN                                        $12     !4
        17        ASSIGN_BW_OR                                  0  ~13     $12
        18      > JMP                                                      ->20
        19    >   ASSIGN_BW_OR                                  0  ~13     !3
        20    >   SEND_VAL                                                 ~13
        21        SEND_VAL                                                 0
        22        DO_ICALL                                         $14     
        23        QM_ASSIGN                                        $15     !2
        24        SEND_VAR                                                 $15
        25        DO_ICALL                                         $16     
        26        FETCH_DIM_R                                      ~17     $16, 1
        27        STRLEN                                           ~18     ~17
        28        IS_EQUAL                                         ~19     !2, !3
        29      > JMPZ                                                     ~19, ->48
        30    > > JMPZ                                                     !4, ->33
        31    >   ASSIGN_BW_OR                                  0  ~20     '+-'
        32      > JMP                                                      ->34
        33    >   ASSIGN_BW_OR                                  0  ~20     '+'
        34    >   FETCH_DIM_R                                      ~21     !2, 0
        35        IS_NOT_EQUAL                                     ~22     ~21, '.'
        36      > JMPZ                                                     ~22, ->39
        37    >   ASSIGN_BW_OR                                  0  ~23     0
        38      > JMP                                                      ->40
        39    >   ASSIGN_BW_OR                                  0  ~23     ''
        40    >   CONCAT                                           ~24     ~20, ~23
        41        INIT_FCALL                                               'trim'
        42        SEND_VAR                                                 !2
        43        SEND_VAL                                                 '.'
        44        DO_ICALL                                         $25     
        45        CONCAT                                           ~26     ~24, $25
        46        ASSIGN_BW_OR                                  0  ~27     ~26
        47      > JMP                                                      ->49
        48    >   ASSIGN_BW_OR                                  0  ~27     ''
        49    >   CONCAT                                           ~28     ~18, ~27
        50        ASSIGN_OBJ                                               ~28
  10    51        ASSIGN_OBJ                                               '%0A'
  11    52      > RETURN                                                   null

End of function x

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
13.66 ms | 420 KiB | 7 Q