3v4l.org

run code in 300+ PHP versions simultaneously
<?php function _uniord($c) { if (ord($c{0}) >=0 && ord($c{0}) <= 127) return ord($c{0}); if (ord($c{0}) >= 192 && ord($c{0}) <= 223) return (ord($c{0})-192)*64 + (ord($c{1})-128); if (ord($c{0}) >= 224 && ord($c{0}) <= 239) return (ord($c{0})-224)*4096 + (ord($c{1})-128)*64 + (ord($c{2})-128); if (ord($c{0}) >= 240 && ord($c{0}) <= 247) return (ord($c{0})-240)*262144 + (ord($c{1})-128)*4096 + (ord($c{2})-128)*64 + (ord($c{3})-128); if (ord($c{0}) >= 248 && ord($c{0}) <= 251) return (ord($c{0})-248)*16777216 + (ord($c{1})-128)*262144 + (ord($c{2})-128)*4096 + (ord($c{3})-128)*64 + (ord($c{4})-128); if (ord($c{0}) >= 252 && ord($c{0}) <= 253) return (ord($c{0})-252)*1073741824 + (ord($c{1})-128)*16777216 + (ord($c{2})-128)*262144 + (ord($c{3})-128)*4096 + (ord($c{4})-128)*64 + (ord($c{5})-128); if (ord($c{0}) >= 254 && ord($c{0}) <= 255) // error return FALSE; return 0; } var_dump(_uniord('А')); $line = "Какова сумма номеров символов Unicode во всем этом вопросе?"; var_dump(mb_strlen($line)); for($i = 0; $i < strlen($line); $i++) { var_dump($line[$i]); }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
Fatal error: Array and string offset access syntax with curly braces is no longer supported in /in/tan2i on line 4
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Fatal error: Array and string offset access syntax with curly braces is no longer supported in /in/tan2i on line 4
Process exited with code 255.
Output for 7.4.0 - 7.4.25, 7.4.27 - 7.4.33
Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 4 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 4 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 5 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 6 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 6 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 7 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 7 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 8 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 8 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 9 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 9 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 9 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 10 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 10 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 11 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 11 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 11 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 11 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 12 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 12 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 13 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 13 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 13 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 13 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 13 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 14 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 14 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 15 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 15 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 15 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 15 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 15 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 15 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 16 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/tan2i on line 16 int(1040) int(59) string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "U" string(1) "n" string(1) "i" string(1) "c" string(1) "o" string(1) "d" string(1) "e" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "?"
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.26
int(1040) int(59) string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "U" string(1) "n" string(1) "i" string(1) "c" string(1) "o" string(1) "d" string(1) "e" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) " " string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "�" string(1) "?"

preferences:
244.66 ms | 405 KiB | 288 Q