3v4l.org

run code in 300+ PHP versions simultaneously
<?php function buildNvpair($name, $value) { $nlen = strlen($name); $vlen = strlen($value); if ($nlen < 128) { /* nameLengthB0 */ $nvpair = chr($nlen); } else { /* nameLengthB3 & nameLengthB2 & nameLengthB1 & nameLengthB0 */ $nvpair = chr(($nlen >> 24) | 0x80) . chr(($nlen >> 16) & 0xFF) . chr(($nlen >> 8) & 0xFF) . chr($nlen & 0xFF); } if ($vlen < 128) { /* valueLengthB0 */ $nvpair .= chr($vlen); } else { /* valueLengthB3 & valueLengthB2 & valueLengthB1 & valueLengthB0 */ $nvpair .= chr(($vlen >> 24) | 0x80) . chr(($vlen >> 16) & 0xFF) . chr(($vlen >> 8) & 0xFF) . chr($vlen & 0xFF); } /* nameData & valueData */ return $nvpair . $name . $value; } $a = buildNvpair("keyword", "48260,49404,49412,49452,49454,49504,49539,49559,49609,49615,49616,49617,49618,49639,49688,49689,49691,49692,49696,49704,49724,49766,49767,49768,49769,49771,49772,49814,49857,49858,49861,49862,49863,49864,50544,50588,50617,50653,50665,50666,50667,50668,50669,50670,50671,50672,50673,50674,50675,50730,50731,50732,50733,50735,50736,50737,50750,50753,50754,50786,50788,50790,50800,50900,50901,50902,50903,50904,50905,50906,50907,50908,50909,50920,50921,50922,50923,50924,50925,50944,50979,50985,50987,50990,51101,51102,51103,51104,51105,51106,51107,51108,51109,51110,51111,51112,51113,51114,51115,51121");
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/TMJWO
function name:  (null)
number of ops:  6
compiled vars:  !0 = $a
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   24     0  E >   INIT_FCALL                                               'buildnvpair'
          1        SEND_VAL                                                 'keyword'
          2        SEND_VAL                                                 '48260%2C49404%2C49412%2C49452%2C49454%2C49504%2C49539%2C49559%2C49609%2C49615%2C49616%2C49617%2C49618%2C49639%2C49688%2C49689%2C49691%2C49692%2C49696%2C49704%2C49724%2C49766%2C49767%2C49768%2C49769%2C49771%2C49772%2C49814%2C49857%2C49858%2C49861%2C49862%2C49863%2C49864%2C50544%2C50588%2C50617%2C50653%2C50665%2C50666%2C50667%2C50668%2C50669%2C50670%2C50671%2C50672%2C50673%2C50674%2C50675%2C50730%2C50731%2C50732%2C50733%2C50735%2C50736%2C50737%2C50750%2C50753%2C50754%2C50786%2C50788%2C50790%2C50800%2C50900%2C50901%2C50902%2C50903%2C50904%2C50905%2C50906%2C50907%2C50908%2C50909%2C50920%2C50921%2C50922%2C50923%2C50924%2C50925%2C50944%2C50979%2C50985%2C50987%2C50990%2C51101%2C51102%2C51103%2C51104%2C51105%2C51106%2C51107%2C51108%2C51109%2C51110%2C51111%2C51112%2C51113%2C51114%2C51115%2C51121'
          3        DO_FCALL                                      0  $1      
          4        ASSIGN                                                   !0, $1
          5      > RETURN                                                   1

Function buildnvpair:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 13
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
2 jumps found. (Code = 43) Position 1 = 38, Position 2 = 43
Branch analysis from position: 38
1 jumps found. (Code = 42) Position 1 = 66
Branch analysis from position: 66
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 43
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 38, Position 2 = 43
Branch analysis from position: 38
Branch analysis from position: 43
filename:       /in/TMJWO
function name:  buildNvpair
number of ops:  70
compiled vars:  !0 = $name, !1 = $value, !2 = $nlen, !3 = $vlen, !4 = $nvpair
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
          1        RECV                                             !1      
    4     2        STRLEN                                           ~5      !0
          3        ASSIGN                                                   !2, ~5
    5     4        STRLEN                                           ~7      !1
          5        ASSIGN                                                   !3, ~7
    6     6        IS_SMALLER                                               !2, 128
          7      > JMPZ                                                     ~9, ->13
    8     8    >   INIT_FCALL                                               'chr'
          9        SEND_VAR                                                 !2
         10        DO_ICALL                                         $10     
         11        ASSIGN                                                   !4, $10
         12      > JMP                                                      ->36
   11    13    >   INIT_FCALL                                               'chr'
         14        SR                                               ~12     !2, 24
         15        BW_OR                                            ~13     ~12, 128
         16        SEND_VAL                                                 ~13
         17        DO_ICALL                                         $14     
         18        INIT_FCALL                                               'chr'
         19        SR                                               ~15     !2, 16
         20        BW_AND                                           ~16     ~15, 255
         21        SEND_VAL                                                 ~16
         22        DO_ICALL                                         $17     
         23        CONCAT                                           ~18     $14, $17
         24        INIT_FCALL                                               'chr'
         25        SR                                               ~19     !2, 8
         26        BW_AND                                           ~20     ~19, 255
         27        SEND_VAL                                                 ~20
         28        DO_ICALL                                         $21     
         29        CONCAT                                           ~22     ~18, $21
         30        INIT_FCALL                                               'chr'
         31        BW_AND                                           ~23     !2, 255
         32        SEND_VAL                                                 ~23
         33        DO_ICALL                                         $24     
         34        CONCAT                                           ~25     ~22, $24
         35        ASSIGN                                                   !4, ~25
   13    36    >   IS_SMALLER                                               !3, 128
         37      > JMPZ                                                     ~27, ->43
   15    38    >   INIT_FCALL                                               'chr'
         39        SEND_VAR                                                 !3
         40        DO_ICALL                                         $28     
         41        ASSIGN_OP                                     8          !4, $28
         42      > JMP                                                      ->66
   18    43    >   INIT_FCALL                                               'chr'
         44        SR                                               ~30     !3, 24
         45        BW_OR                                            ~31     ~30, 128
         46        SEND_VAL                                                 ~31
         47        DO_ICALL                                         $32     
         48        INIT_FCALL                                               'chr'
         49        SR                                               ~33     !3, 16
         50        BW_AND                                           ~34     ~33, 255
         51        SEND_VAL                                                 ~34
         52        DO_ICALL                                         $35     
         53        CONCAT                                           ~36     $32, $35
         54        INIT_FCALL                                               'chr'
         55        SR                                               ~37     !3, 8
         56        BW_AND                                           ~38     ~37, 255
         57        SEND_VAL                                                 ~38
         58        DO_ICALL                                         $39     
         59        CONCAT                                           ~40     ~36, $39
         60        INIT_FCALL                                               'chr'
         61        BW_AND                                           ~41     !3, 255
         62        SEND_VAL                                                 ~41
         63        DO_ICALL                                         $42     
         64        CONCAT                                           ~43     ~40, $42
         65        ASSIGN_OP                                     8          !4, ~43
   21    66    >   CONCAT                                           ~45     !4, !0
         67        CONCAT                                           ~46     ~45, !1
         68      > RETURN                                                   ~46
   22    69*     > RETURN                                                   null

End of function buildnvpair

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
145.7 ms | 1407 KiB | 16 Q