3v4l.org

run code in 500+ PHP versions simultaneously
<?php // UTF-16 surrogate codepoints have no valid encoding in any UTF form. // https://en.wikipedia.org/wiki/UTF-16#U.2BD800_to_U.2BDFFF // If they could be validly represented in UTF-8 their bytes // would be: $high = "\xED\xa1\x92"; // codepoint D852 $low = "\xED\xBD\xA2"; // codepoint DF62 $pair = $high.$low; var_dump( @\iconv('UTF-8', 'UTF-8', $high) === false, @\iconv('UTF-8', 'UTF-8', $low) === false, @\iconv('UTF-8', 'UTF-8', $pair) === false ); /* Should be: * bool(true) * bool(true) * bool(true) * * Result on Windows with 7.0 or 7.1 is: * bool(false) * bool(false) * bool(false) */
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/Ff6cr
function name:  (null)
number of ops:  34
compiled vars:  !0 = $high, !1 = $low, !2 = $pair
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    9     0  E >   ASSIGN                                                       !0, '%ED%A1%92'
   10     1        ASSIGN                                                       !1, '%ED%BD%A2'
   11     2        CONCAT                                               ~5      !0, !1
          3        ASSIGN                                                       !2, ~5
   12     4        INIT_FCALL                                                   'var_dump'
   13     5        BEGIN_SILENCE                                        ~7      
          6        INIT_FCALL_BY_NAME                                           'iconv'
          7        SEND_VAL_EX                                                  'UTF-8'
          8        SEND_VAL_EX                                                  'UTF-8'
          9        SEND_VAR_EX                                                  !0
         10        DO_FCALL                                          0  $8      
         11        END_SILENCE                                                  ~7
         12        TYPE_CHECK                                        4  ~9      $8
         13        SEND_VAL                                                     ~9
   14    14        BEGIN_SILENCE                                        ~10     
         15        INIT_FCALL_BY_NAME                                           'iconv'
         16        SEND_VAL_EX                                                  'UTF-8'
         17        SEND_VAL_EX                                                  'UTF-8'
         18        SEND_VAR_EX                                                  !1
         19        DO_FCALL                                          0  $11     
         20        END_SILENCE                                                  ~10
         21        TYPE_CHECK                                        4  ~12     $11
         22        SEND_VAL                                                     ~12
   15    23        BEGIN_SILENCE                                        ~13     
         24        INIT_FCALL_BY_NAME                                           'iconv'
         25        SEND_VAL_EX                                                  'UTF-8'
         26        SEND_VAL_EX                                                  'UTF-8'
         27        SEND_VAR_EX                                                  !2
         28        DO_FCALL                                          0  $14     
         29        END_SILENCE                                                  ~13
         30        TYPE_CHECK                                        4  ~15     $14
         31        SEND_VAL                                                     ~15
   12    32        DO_ICALL                                                     
   27    33      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
177.52 ms | 3315 KiB | 14 Q