3v4l.org

run code in 500+ PHP versions simultaneously
<?php /* Напиши программу, проверяющую, является ли строка палиндромом. */ $text = 'А роза упала на лапу Азора'; $result = 'палиндром'; $text = mb_strtolower($text); $text = str_replace(' ', '', $text); $length = mb_strlen($text); $halfLength = floor($length / 2); for ($i = 0; $i < $halfLength; $i++) { $left = mb_substr($text, $i, 1); $right = mb_substr($text, -($i + 1), 1); if ($left != $right) { $result = 'не палиндром'; break; } } echo "Результат: {$result}.";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 20
Branch analysis from position: 41
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 38
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 41
Branch analysis from position: 41
Branch analysis from position: 38
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 20
Branch analysis from position: 41
Branch analysis from position: 20
filename:       /in/41MnH
function name:  (null)
number of ops:  46
compiled vars:  !0 = $text, !1 = $result, !2 = $length, !3 = $halfLength, !4 = $i, !5 = $left, !6 = $right
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    5     0  E >   ASSIGN                                                       !0, '%D0%90+%D1%80%D0%BE%D0%B7%D0%B0+%D1%83%D0%BF%D0%B0%D0%BB%D0%B0+%D0%BD%D0%B0+%D0%BB%D0%B0%D0%BF%D1%83+%D0%90%D0%B7%D0%BE%D1%80%D0%B0'
    6     1        ASSIGN                                                       !1, '%D0%BF%D0%B0%D0%BB%D0%B8%D0%BD%D0%B4%D1%80%D0%BE%D0%BC'
    8     2        INIT_FCALL                                                   'mb_strtolower'
          3        SEND_VAR                                                     !0
          4        DO_ICALL                                             $9      
          5        ASSIGN                                                       !0, $9
   10     6        FRAMELESS_ICALL_3                str_replace         ~11     '+', ''
          7        OP_DATA                                                      !0
          8        ASSIGN                                                       !0, ~11
   11     9        INIT_FCALL                                                   'mb_strlen'
         10        SEND_VAR                                                     !0
         11        DO_ICALL                                             $13     
         12        ASSIGN                                                       !2, $13
   12    13        INIT_FCALL                                                   'floor'
         14        DIV                                                  ~15     !2, 2
         15        SEND_VAL                                                     ~15
         16        DO_ICALL                                             $16     
         17        ASSIGN                                                       !3, $16
   14    18        ASSIGN                                                       !4, 0
         19      > JMP                                                          ->39
   15    20    >   INIT_FCALL                                                   'mb_substr'
         21        SEND_VAR                                                     !0
         22        SEND_VAR                                                     !4
         23        SEND_VAL                                                     1
         24        DO_ICALL                                             $19     
         25        ASSIGN                                                       !5, $19
   16    26        INIT_FCALL                                                   'mb_substr'
         27        SEND_VAR                                                     !0
         28        ADD                                                  ~21     !4, 1
         29        MUL                                                  ~22     ~21, -1
         30        SEND_VAL                                                     ~22
         31        SEND_VAL                                                     1
         32        DO_ICALL                                             $23     
         33        ASSIGN                                                       !6, $23
   18    34        IS_NOT_EQUAL                                                 !5, !6
         35      > JMPZ                                                         ~25, ->38
   19    36    >   ASSIGN                                                       !1, '%D0%BD%D0%B5+%D0%BF%D0%B0%D0%BB%D0%B8%D0%BD%D0%B4%D1%80%D0%BE%D0%BC'
   21    37      > JMP                                                          ->41
   14    38    >   PRE_INC                                                      !4
         39    >   IS_SMALLER                                                   !4, !3
         40      > JMPNZ                                                        ~28, ->20
   25    41    >   ROPE_INIT                                         3  ~30     '%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%3A+'
         42        ROPE_ADD                                          1  ~30     ~30, !1
         43        ROPE_END                                          2  ~29     ~30, '.'
         44        ECHO                                                         ~29
         45      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
167.51 ms | 2072 KiB | 18 Q