3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tests = [ "Bright vixens jump; dozy owl quack.", "zyra nymph, quid vex jock, fblg wt", "Amazingly few discotheques provide jukeboxes", "ANFZB ZIQBB SNYQ YWAHT", "pack my box with five dozen liquor jugs!!", "Mr Jock, TV quiz PhD, bags few lynx.", ]; $perfection = array_fill_keys(range(97, 122), 1); $non = $pan = $perf = 0; foreach ($tests as $test) { $counts = array_intersect_key( count_chars(strtolower($test), 1), $perfection ); // var_dump($perfection, '-', $counts, '==='); if ($perfection === $counts) { ++$perf; } elseif (count($counts) != 26) { ++$non; } else { ++$pan; } } var_dump($non, $pan, $perf);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 14, Position 2 = 38
Branch analysis from position: 14
2 jumps found. (Code = 78) Position 1 = 15, Position 2 = 38
Branch analysis from position: 15
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 31
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 14
Branch analysis from position: 14
Branch analysis from position: 31
2 jumps found. (Code = 43) Position 1 = 34, Position 2 = 36
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 14
Branch analysis from position: 14
Branch analysis from position: 38
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 38
filename:       /in/m4nXG
function name:  (null)
number of ops:  45
compiled vars:  !0 = $tests, !1 = $perfection, !2 = $non, !3 = $pan, !4 = $perf, !5 = $test, !6 = $counts
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   12     1        INIT_FCALL                                               'array_fill_keys'
          2        INIT_FCALL                                               'range'
          3        SEND_VAL                                                 97
          4        SEND_VAL                                                 122
          5        DO_ICALL                                         $8      
          6        SEND_VAR                                                 $8
          7        SEND_VAL                                                 1
          8        DO_ICALL                                         $9      
          9        ASSIGN                                                   !1, $9
   14    10        ASSIGN                                           ~11     !4, 0
         11        ASSIGN                                           ~12     !3, ~11
         12        ASSIGN                                                   !2, ~12
   15    13      > FE_RESET_R                                       $14     !0, ->38
         14    > > FE_FETCH_R                                               $14, !5, ->38
   16    15    >   INIT_FCALL                                               'array_intersect_key'
   17    16        INIT_FCALL                                               'count_chars'
         17        INIT_FCALL                                               'strtolower'
         18        SEND_VAR                                                 !5
         19        DO_ICALL                                         $15     
         20        SEND_VAR                                                 $15
         21        SEND_VAL                                                 1
         22        DO_ICALL                                         $16     
         23        SEND_VAR                                                 $16
   18    24        SEND_VAR                                                 !1
   16    25        DO_ICALL                                         $17     
         26        ASSIGN                                                   !6, $17
   21    27        IS_IDENTICAL                                             !1, !6
         28      > JMPZ                                                     ~19, ->31
   22    29    >   PRE_INC                                                  !4
   21    30      > JMP                                                      ->37
   23    31    >   COUNT                                            ~21     !6
         32        IS_NOT_EQUAL                                             ~21, 26
         33      > JMPZ                                                     ~22, ->36
   24    34    >   PRE_INC                                                  !2
   23    35      > JMP                                                      ->37
   26    36    >   PRE_INC                                                  !3
   15    37    > > JMP                                                      ->14
         38    >   FE_FREE                                                  $14
   29    39        INIT_FCALL                                               'var_dump'
         40        SEND_VAR                                                 !2
         41        SEND_VAR                                                 !3
         42        SEND_VAR                                                 !4
         43        DO_ICALL                                                 
         44      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
161.12 ms | 1012 KiB | 19 Q