3v4l.org

run code in 300+ PHP versions simultaneously
<?php $s0 = 'Α'; $s1 = 'А'; $s2 = 'A'; $s3 = 'a'; $s4 = 'а'; $err = null; $sp = new \Spoofchecker(); $sp->setAllowedLocales('en_EN'); $sp->setChecks(\Spoofchecker::SINGLE_SCRIPT_CONFUSABLE | \Spoofchecker::MIXED_SCRIPT_CONFUSABLE | \Spoofchecker::WHOLE_SCRIPT_CONFUSABLE); // non-unicode, but enough to differentiate var_dump(ord($s0), ord($s1), ord($s2), ord($s3), ord($s4)); // 206, 208, 65, 97, 208 var_dump('Confusable 0-1: ' . $sp->areConfusable($s0, $s1, $err), 'Error: ' . $err); // no, 0 var_dump('Confusable 1-2: ' . $sp->areConfusable($s1, $s2, $err), 'Error: ' . $err); // no, 0 var_dump('Confusable 2-3: ' . $sp->areConfusable($s2, $s3, $err), 'Error: ' . $err); // no, 0 var_dump('Confusable 3-4: ' . $sp->areConfusable($s3, $s4, $err), 'Error: ' . $err); // yes, 6 var_dump('Suspicious #0: ' . $sp->isSuspicious($s0, $err), 'Error: ' . $err); // no, 0 var_dump('Suspicious #1: ' . $sp->isSuspicious($s1, $err), 'Error: ' . $err); // no, 0 var_dump('Suspicious #2: ' . $sp->isSuspicious($s2, $err), 'Error: ' . $err); // no, 0 var_dump('Suspicious #3: ' . $sp->isSuspicious($s3, $err), 'Error: ' . $err); // yes, 4 var_dump('Suspicious #4: ' . $sp->isSuspicious($s4, $err), 'Error: ' . $err); // yes, 4
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/5oGit
function name:  (null)
number of ops:  137
compiled vars:  !0 = $s0, !1 = $s1, !2 = $s2, !3 = $s3, !4 = $s4, !5 = $err, !6 = $sp
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%CE%91'
    4     1        ASSIGN                                                   !1, '%D0%90'
    5     2        ASSIGN                                                   !2, 'A'
    6     3        ASSIGN                                                   !3, 'a'
    7     4        ASSIGN                                                   !4, '%D0%B0'
    9     5        ASSIGN                                                   !5, null
   10     6        NEW                                              $13     'Spoofchecker'
          7        DO_FCALL                                      0          
          8        ASSIGN                                                   !6, $13
   11     9        INIT_METHOD_CALL                                         !6, 'setAllowedLocales'
         10        SEND_VAL_EX                                              'en_EN'
         11        DO_FCALL                                      0          
   12    12        INIT_METHOD_CALL                                         !6, 'setChecks'
         13        FETCH_CLASS_CONSTANT                             ~17     'Spoofchecker', 'SINGLE_SCRIPT_CONFUSABLE'
         14        FETCH_CLASS_CONSTANT                             ~18     'Spoofchecker', 'MIXED_SCRIPT_CONFUSABLE'
         15        BW_OR                                            ~19     ~17, ~18
         16        FETCH_CLASS_CONSTANT                             ~20     'Spoofchecker', 'WHOLE_SCRIPT_CONFUSABLE'
         17        BW_OR                                            ~21     ~19, ~20
         18        SEND_VAL_EX                                              ~21
         19        DO_FCALL                                      0          
   15    20        INIT_FCALL                                               'var_dump'
         21        INIT_FCALL                                               'ord'
         22        SEND_VAR                                                 !0
         23        DO_ICALL                                         $23     
         24        SEND_VAR                                                 $23
         25        INIT_FCALL                                               'ord'
         26        SEND_VAR                                                 !1
         27        DO_ICALL                                         $24     
         28        SEND_VAR                                                 $24
         29        INIT_FCALL                                               'ord'
         30        SEND_VAR                                                 !2
         31        DO_ICALL                                         $25     
         32        SEND_VAR                                                 $25
         33        INIT_FCALL                                               'ord'
         34        SEND_VAR                                                 !3
         35        DO_ICALL                                         $26     
         36        SEND_VAR                                                 $26
         37        INIT_FCALL                                               'ord'
         38        SEND_VAR                                                 !4
         39        DO_ICALL                                         $27     
         40        SEND_VAR                                                 $27
         41        DO_ICALL                                                 
   17    42        INIT_FCALL                                               'var_dump'
         43        INIT_METHOD_CALL                                         !6, 'areConfusable'
         44        SEND_VAR_EX                                              !0
         45        SEND_VAR_EX                                              !1
         46        SEND_VAR_EX                                              !5
         47        DO_FCALL                                      0  $29     
         48        CONCAT                                           ~30     'Confusable+0-1%3A+', $29
         49        SEND_VAL                                                 ~30
         50        CONCAT                                           ~31     'Error%3A+', !5
         51        SEND_VAL                                                 ~31
         52        DO_ICALL                                                 
   18    53        INIT_FCALL                                               'var_dump'
         54        INIT_METHOD_CALL                                         !6, 'areConfusable'
         55        SEND_VAR_EX                                              !1
         56        SEND_VAR_EX                                              !2
         57        SEND_VAR_EX                                              !5
         58        DO_FCALL                                      0  $33     
         59        CONCAT                                           ~34     'Confusable+1-2%3A+', $33
         60        SEND_VAL                                                 ~34
         61        CONCAT                                           ~35     'Error%3A+', !5
         62        SEND_VAL                                                 ~35
         63        DO_ICALL                                                 
   19    64        INIT_FCALL                                               'var_dump'
         65        INIT_METHOD_CALL                                         !6, 'areConfusable'
         66        SEND_VAR_EX                                              !2
         67        SEND_VAR_EX                                              !3
         68        SEND_VAR_EX                                              !5
         69        DO_FCALL                                      0  $37     
         70        CONCAT                                           ~38     'Confusable+2-3%3A+', $37
         71        SEND_VAL                                                 ~38
         72        CONCAT                                           ~39     'Error%3A+', !5
         73        SEND_VAL                                                 ~39
         74        DO_ICALL                                                 
   20    75        INIT_FCALL                                               'var_dump'
         76        INIT_METHOD_CALL                                         !6, 'areConfusable'
         77        SEND_VAR_EX                                              !3
         78        SEND_VAR_EX                                              !4
         79        SEND_VAR_EX                                              !5
         80        DO_FCALL                                      0  $41     
         81        CONCAT                                           ~42     'Confusable+3-4%3A+', $41
         82        SEND_VAL                                                 ~42
         83        CONCAT                                           ~43     'Error%3A+', !5
         84        SEND_VAL                                                 ~43
         85        DO_ICALL                                                 
   22    86        INIT_FCALL                                               'var_dump'
         87        INIT_METHOD_CALL                                         !6, 'isSuspicious'
         88        SEND_VAR_EX                                              !0
         89        SEND_VAR_EX                                              !5
         90        DO_FCALL                                      0  $45     
         91        CONCAT                                           ~46     'Suspicious+%230%3A+', $45
         92        SEND_VAL                                                 ~46
         93        CONCAT                                           ~47     'Error%3A+', !5
         94        SEND_VAL                                                 ~47
         95        DO_ICALL                                                 
   23    96        INIT_FCALL                                               'var_dump'
         97        INIT_METHOD_CALL                                         !6, 'isSuspicious'
         98        SEND_VAR_EX                                              !1
         99        SEND_VAR_EX                                              !5
        100        DO_FCALL                                      0  $49     
        101        CONCAT                                           ~50     'Suspicious+%231%3A+', $49
        102        SEND_VAL                                                 ~50
        103        CONCAT                                           ~51     'Error%3A+', !5
        104        SEND_VAL                                                 ~51
        105        DO_ICALL                                                 
   24   106        INIT_FCALL                                               'var_dump'
        107        INIT_METHOD_CALL                                         !6, 'isSuspicious'
        108        SEND_VAR_EX                                              !2
        109        SEND_VAR_EX                                              !5
        110        DO_FCALL                                      0  $53     
        111        CONCAT                                           ~54     'Suspicious+%232%3A+', $53
        112        SEND_VAL                                                 ~54
        113        CONCAT                                           ~55     'Error%3A+', !5
        114        SEND_VAL                                                 ~55
        115        DO_ICALL                                                 
   25   116        INIT_FCALL                                               'var_dump'
        117        INIT_METHOD_CALL                                         !6, 'isSuspicious'
        118        SEND_VAR_EX                                              !3
        119        SEND_VAR_EX                                              !5
        120        DO_FCALL                                      0  $57     
        121        CONCAT                                           ~58     'Suspicious+%233%3A+', $57
        122        SEND_VAL                                                 ~58
        123        CONCAT                                           ~59     'Error%3A+', !5
        124        SEND_VAL                                                 ~59
        125        DO_ICALL                                                 
   26   126        INIT_FCALL                                               'var_dump'
        127        INIT_METHOD_CALL                                         !6, 'isSuspicious'
        128        SEND_VAR_EX                                              !4
        129        SEND_VAR_EX                                              !5
        130        DO_FCALL                                      0  $61     
        131        CONCAT                                           ~62     'Suspicious+%234%3A+', $61
        132        SEND_VAL                                                 ~62
        133        CONCAT                                           ~63     'Error%3A+', !5
        134        SEND_VAL                                                 ~63
        135        DO_ICALL                                                 
        136      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
143.02 ms | 1404 KiB | 17 Q