{"type":"rich","version":"1.0","provider_name":"Transistor","provider_url":"https://transistor.fm","author_name":"Programming Tech Brief By HackerNoon","title":"A Case Study on How PHP Handles Identifiers and Text Internally ","html":"<iframe width=\"100%\" height=\"180\" frameborder=\"no\" scrolling=\"no\" seamless src=\"https://share.transistor.fm/e/9cc32eab\"></iframe>","width":"100%","height":180,"duration":497,"description":"\n        This story was originally published on HackerNoon at: https://hackernoon.com/a-case-study-on-how-php-handles-identifiers-and-text-internally.\n             This article explains why PHP allows emoji identifiers and what that reveals about UTF-8, Unicode, byte-based strings, and PHP internals. \n            Check more stories related to programming at: https://hackernoon.com/c/programming.\n            You can also check exclusive content about #php8, #unicode, #how-unicode-works-in-practice, #constructor-injection, #php-strings, #multibyte-strings, #utf-8-encoding, #php-internals,  and more.\n            \n            \n            This story was written by: @emmanueloziri. Learn more about this writer by checking @emmanueloziri's about page,\n            and for more stories, please visit hackernoon.com.\n            \n                \n                \n                Using a small PHP snippet with emoji-based class names and variables, this article explores the deeper mechanics of UTF-8 encoding, Unicode codepoints, PHP’s byte-oriented parser, multibyte string handling, constructor property promotion, nullable types, and type juggling. The broader lesson is that PHP does not truly understand Unicode semantically; instead, it treats identifiers and strings as permissive byte sequences, a design choice that unintentionally makes emoji identifiers possible.\n        \n        ","thumbnail_url":"https://img.transistorcdn.com/KhCapPSRkLGL2Xw8888yuChkNRWthaKapLYTvNdu4W4/rs:fill:0:0:1/w:400/h:400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9zaG93/LzQxMTY2LzE2ODM1/ODIzMzAtYXJ0d29y/ay5qcGc.webp","thumbnail_width":300,"thumbnail_height":300}