3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = '😀'; echo '=== UTF-8 =============================', PHP_EOL; echo 'STRING: ', $string, PHP_EOL; echo 'CHARACTERS: ', mb_strlen($string), PHP_EOL; // 1 echo 'BYTE COUNT: ', mb_strlen($string, '8bit'), PHP_EOL; // 4 foreach(range(0, mb_strlen($string) - 1) as $index) { echo PHP_EOL; echo 'CHARACTER #', $index + 1, ' CODE POINT: ', '0x', dechex(mb_ord(mb_substr($string, $index, 1))), PHP_EOL; // [0x1f600] echo 'CHARACTER #', $index + 1, ' BYTE COUNT: ', mb_strlen(mb_substr($string, $index, 1), '8bit'), PHP_EOL; // 4 } echo '=======================================', PHP_EOL, PHP_EOL; $string = mb_convert_encoding($string, 'UTF-16', 'UTF-8'); echo '=== UTF-16 ============================', PHP_EOL; echo 'STRING: ', $string, PHP_EOL; echo 'CHARACTERS: ', mb_strlen($string), PHP_EOL; // should be 1, is 2 echo 'BYTE COUNT: ', strlen($string), PHP_EOL; // shold be 4, is 4 foreach(range(0, mb_strlen($string) - 1) as $index) { echo PHP_EOL; echo 'CHARACTER #', $index + 1, ' CODE POINT: ', '0x', dechex(mb_ord(mb_substr($string, $index, 1))), PHP_EOL; // should be [0x1f600], is [0x0, 0x0] echo 'CHARACTER #', $index + 1, ' BYTE COUNT: ', mb_strlen(mb_substr($string, $index, 1), '8bit'), PHP_EOL; // should be [4], is [2, 2] } echo '=======================================', PHP_EOL;
Output for git.master, git.master_jit
=== UTF-8 ============================= STRING: 😀 CHARACTERS: 1 BYTE COUNT: 4 CHARACTER #1 CODE POINT: 0x1f600 CHARACTER #1 BYTE COUNT: 4 ======================================= === UTF-16 ============================ STRING: �=� CHARACTERS: 2 BYTE COUNT: 4 CHARACTER #1 CODE POINT: 0x0 CHARACTER #1 BYTE COUNT: 2 CHARACTER #2 CODE POINT: 0x0 CHARACTER #2 BYTE COUNT: 2 =======================================
Output for rfc.property-hooks
=== UTF-8 ============================= STRING: 😀 CHARACTERS: 1 BYTE COUNT: 4 CHARACTER #1 CODE POINT: 0x1f600 CHARACTER #1 BYTE COUNT: 4 ======================================= === UTF-16 ============================ STRING: �=� CHARACTERS: 4 BYTE COUNT: 4 CHARACTER #1 CODE POINT: 0x0 CHARACTER #1 BYTE COUNT: 2 CHARACTER #2 CODE POINT: 0x0 CHARACTER #2 BYTE COUNT: 2 CHARACTER #3 CODE POINT: 0x Fatal error: Uncaught ValueError: mb_ord(): Argument #1 ($string) must not be empty in /in/LQott:26 Stack trace: #0 /in/LQott(26): mb_ord('') #1 {main} thrown in /in/LQott on line 26
Process exited with code 255.

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
69.75 ms | 401 KiB | 8 Q