3v4l.org

run code in 300+ PHP versions simultaneously
<?php $h='my home is my castle'; $n='is'; $part = stristr($h,$n,true); $part2 = stristr($h,$n); if (version_compare(PHP_VERSION, '5.0.0', '>=')) { if($pos=stripos($h,$n)) $part3=substr($h,0,$pos); }else{ echo "I am using PHP 4\n"; } $h=strtolower($h); $n=strtolower($n); if($pos=strpos($h,$n)) $part4=substr($h,0,$pos); echo "This is my: $part\n"; echo "That is my: $part2\n"; echo "Also, this: $part3\n"; echo "This too: $part4\n"; ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 32
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 31
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 47, Position 2 = 53
Branch analysis from position: 47
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 53
Branch analysis from position: 31
Branch analysis from position: 32
2 jumps found. (Code = 43) Position 1 = 47, Position 2 = 53
Branch analysis from position: 47
Branch analysis from position: 53
filename:       /in/2l5eM
function name:  (null)
number of ops:  70
compiled vars:  !0 = $h, !1 = $n, !2 = $part, !3 = $part2, !4 = $pos, !5 = $part3, !6 = $part4
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'my+home+is+my+castle'
    3     1        ASSIGN                                                   !1, 'is'
    4     2        INIT_FCALL                                               'stristr'
          3        SEND_VAR                                                 !0
          4        SEND_VAR                                                 !1
          5        SEND_VAL                                                 <true>
          6        DO_ICALL                                         $9      
          7        ASSIGN                                                   !2, $9
    5     8        INIT_FCALL                                               'stristr'
          9        SEND_VAR                                                 !0
         10        SEND_VAR                                                 !1
         11        DO_ICALL                                         $11     
         12        ASSIGN                                                   !3, $11
    6    13        INIT_FCALL                                               'version_compare'
         14        SEND_VAL                                                 '8.0.0'
         15        SEND_VAL                                                 '5.0.0'
         16        SEND_VAL                                                 '%3E%3D'
         17        DO_ICALL                                         $13     
         18      > JMPZ                                                     $13, ->32
    7    19    >   INIT_FCALL                                               'stripos'
         20        SEND_VAR                                                 !0
         21        SEND_VAR                                                 !1
         22        DO_ICALL                                         $14     
         23        ASSIGN                                           ~15     !4, $14
         24      > JMPZ                                                     ~15, ->31
         25    >   INIT_FCALL                                               'substr'
         26        SEND_VAR                                                 !0
         27        SEND_VAL                                                 0
         28        SEND_VAR                                                 !4
         29        DO_ICALL                                         $16     
         30        ASSIGN                                                   !5, $16
         31    > > JMP                                                      ->33
    9    32    >   ECHO                                                     'I+am+using+PHP+4%0A'
   11    33    >   INIT_FCALL                                               'strtolower'
         34        SEND_VAR                                                 !0
         35        DO_ICALL                                         $18     
         36        ASSIGN                                                   !0, $18
   12    37        INIT_FCALL                                               'strtolower'
         38        SEND_VAR                                                 !1
         39        DO_ICALL                                         $20     
         40        ASSIGN                                                   !1, $20
   13    41        INIT_FCALL                                               'strpos'
         42        SEND_VAR                                                 !0
         43        SEND_VAR                                                 !1
         44        DO_ICALL                                         $22     
         45        ASSIGN                                           ~23     !4, $22
         46      > JMPZ                                                     ~23, ->53
         47    >   INIT_FCALL                                               'substr'
         48        SEND_VAR                                                 !0
         49        SEND_VAL                                                 0
         50        SEND_VAR                                                 !4
         51        DO_ICALL                                         $24     
         52        ASSIGN                                                   !6, $24
   14    53    >   ROPE_INIT                                     3  ~27     'This+is+my%3A+'
         54        ROPE_ADD                                      1  ~27     ~27, !2
         55        ROPE_END                                      2  ~26     ~27, '%0A'
         56        ECHO                                                     ~26
   15    57        ROPE_INIT                                     3  ~30     'That+is+my%3A+'
         58        ROPE_ADD                                      1  ~30     ~30, !3
         59        ROPE_END                                      2  ~29     ~30, '%0A'
         60        ECHO                                                     ~29
   16    61        ROPE_INIT                                     3  ~33     'Also%2C+this%3A+'
         62        ROPE_ADD                                      1  ~33     ~33, !5
         63        ROPE_END                                      2  ~32     ~33, '%0A'
         64        ECHO                                                     ~32
   17    65        ROPE_INIT                                     3  ~36     'This+too%3A+'
         66        ROPE_ADD                                      1  ~36     ~36, !6
         67        ROPE_END                                      2  ~35     ~36, '%0A'
         68        ECHO                                                     ~35
   19    69      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
159.87 ms | 1392 KiB | 25 Q