3v4l.org

run code in 300+ PHP versions simultaneously
<?php function dateSuffix(int $x): string { $s = [0,"st","nd","rd"]; return (in_array($x,[1,2,3,21,22,23,31])) ? $s[$x % 10] : "th"; } function ordinal_suffix_match(int $value): string { return match ($value % 100) { 1, 21, 31, 41, 51, 61, 71, 81, 91 => 'st', 2, 22, 32, 42, 52, 62, 72, 82, 92 => 'nd', 3, 23, 33, 43, 53, 63, 73, 83, 93 => 'rd', default => 'th', }; }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/oBEr2
function name:  (null)
number of ops:  1
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   17     0  E > > RETURN                                                   1

Function datesuffix:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 11
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/oBEr2
function name:  dateSuffix
number of ops:  16
compiled vars:  !0 = $x, !1 = $s
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    5     1        ASSIGN                                                   !1, <array>
    6     2        INIT_FCALL                                               'in_array'
          3        SEND_VAR                                                 !0
          4        SEND_VAL                                                 <array>
          5        DO_ICALL                                         $3      
          6      > JMPZ                                                     $3, ->11
          7    >   MOD                                              ~4      !0, 10
          8        FETCH_DIM_R                                      ~5      !1, ~4
          9        QM_ASSIGN                                        ~6      ~5
         10      > JMP                                                      ->12
         11    >   QM_ASSIGN                                        ~6      'th'
         12    >   VERIFY_RETURN_TYPE                                       ~6
         13      > RETURN                                                   ~6
    7    14*       VERIFY_RETURN_TYPE                                       
         15*     > RETURN                                                   null

End of function datesuffix

Function ordinal_suffix_match:
Finding entry points
Branch analysis from position: 0
28 jumps found. (Code = 195) Position 1 = 3, Position 2 = 3, Position 3 = 3, Position 4 = 3, Position 5 = 3, Position 6 = 3, Position 7 = 3, Position 8 = 3, Position 9 = 3, Position 10 = 5, Position 11 = 5, Position 12 = 5, Position 13 = 5, Position 14 = 5, Position 15 = 5, Position 16 = 5, Position 17 = 5, Position 18 = 5, Position 19 = 7, Position 20 = 7, Position 21 = 7, Position 22 = 7, Position 23 = 7, Position 24 = 7, Position 25 = 7, Position 26 = 7, Position 27 = 7, Position 28 = 9
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
Branch analysis from position: 3
Branch analysis from position: 3
Branch analysis from position: 3
Branch analysis from position: 3
Branch analysis from position: 3
Branch analysis from position: 3
Branch analysis from position: 3
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 5
Branch analysis from position: 5
Branch analysis from position: 5
Branch analysis from position: 5
Branch analysis from position: 5
Branch analysis from position: 5
Branch analysis from position: 5
Branch analysis from position: 5
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 7
Branch analysis from position: 7
Branch analysis from position: 7
Branch analysis from position: 7
Branch analysis from position: 7
Branch analysis from position: 7
Branch analysis from position: 7
Branch analysis from position: 7
Branch analysis from position: 9
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
filename:       /in/oBEr2
function name:  ordinal_suffix_match
number of ops:  16
compiled vars:  !0 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    9     0  E >   RECV                                             !0      
   11     1        MOD                                              ~1      !0, 100
          2      > MATCH                                                    ~1, [ 1:->3, 21:->3, 31:->3, 41:->3, 51:->3, 61:->3, 71:->3, 81:->3, 91:->3, 2:->5, 22:->5, 32:->5, 42:->5, 52:->5, 62:->5, 72:->5, 82:->5, 92:->5, 3:->7, 23:->7, 33:->7, 43:->7, 53:->7, 63:->7, 73:->7, 83:->7, 93:->7, ], ->9
   12     3    >   QM_ASSIGN                                        ~3      'st'
          4      > JMP                                                      ->11
   13     5    >   QM_ASSIGN                                        ~3      'nd'
          6      > JMP                                                      ->11
   14     7    >   QM_ASSIGN                                        ~3      'rd'
          8      > JMP                                                      ->11
   15     9    >   QM_ASSIGN                                        ~3      'th'
         10      > JMP                                                      ->11
         11    >   FREE                                                     ~1
         12        VERIFY_RETURN_TYPE                                       ~3
         13      > RETURN                                                   ~3
   17    14*       VERIFY_RETURN_TYPE                                       
         15*     > RETURN                                                   null

End of function ordinal_suffix_match

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
140.48 ms | 1002 KiB | 14 Q