{"id":4391,"date":"2026-03-14T20:29:17","date_gmt":"2026-03-14T18:29:17","guid":{"rendered":"https:\/\/turbo.host\/blog\/?p=4391"},"modified":"2026-04-29T00:25:53","modified_gmt":"2026-04-28T22:25:53","slug":"php-8-5-whats-new-and-why-it-matters","status":"publish","type":"post","link":"https:\/\/turbo.host\/blog\/php-8-5-whats-new-and-why-it-matters\/","title":{"rendered":"PHP 8.5: What\u2019s New and Why It Matters"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">PHP continues to evolve, and version 8.5 brings a fresh wave of improvements that make writing modern, clean, and performant code easier than ever. Whether you\u2019re a seasoned developer or just getting started, here\u2019s everything you need to know about PHP 8.5.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a>What Is PHP 8.5?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8.5 is the latest major release in the PHP 8.x series, building on the strong foundation laid by PHP 8.0 through 8.4. It introduces new language features, performance enhancements, and deprecations that push PHP further into the modern programming landscape.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a>Key Features in PHP 8.5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>1. Pipe Operator (|&gt;)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The pipe operator allows chaining callables left-to-right, passing values smoothly through multiple functions \u2014 no messy intermediary variables or deeply nested calls.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Before PHP 8.5:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$result\u00a0=\u00a0trim(strtolower(htmlspecialchars($input)));<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">result\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0trim<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">strtolower<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">htmlspecialchars<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">input<\/span><span style=\"color: #ECEFF4\">)))<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative\">PHP<\/span><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>With the Pipe Operator:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$result\u00a0=\u00a0$input\n\u00a0\u00a0\u00a0\u00a0|>\u00a0htmlspecialchars(...)\n\u00a0\u00a0\u00a0\u00a0|>\u00a0strtolower(...)\n\u00a0\u00a0\u00a0\u00a0|>\u00a0trim(...);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">result\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">input<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #81A1C1\">|&gt;<\/span><span style=\"color: #88C0D0\">\u00a0htmlspecialchars<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">...<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #81A1C1\">|&gt;<\/span><span style=\"color: #88C0D0\">\u00a0strtolower<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">...<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #81A1C1\">|&gt;<\/span><span style=\"color: #88C0D0\">\u00a0trim<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">...<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative\">PHP<\/span><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>2. Built-in URI Extension<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8.5 ships with a new always-available URI extension for securely parsing, normalizing, and modifying URLs \u2014 following RFC 3986 and WHATWG URL standards.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$uri\u00a0=\u00a0Uri\\Uri::parse('https:\/\/example.com\/path?query=hello#fragment');\n\necho\u00a0$uri->getHost();\u00a0\u00a0\u00a0\/\/ example.com\necho\u00a0$uri->getPath();\u00a0\u00a0\u00a0\/\/ \/path\necho\u00a0$uri->getQuery();\u00a0\u00a0\/\/ query=hello<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">uri\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">\u00a0Uri<\/span><span style=\"color: #ECEFF4\">\\<\/span><span style=\"color: #8FBCBB\">Uri<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">parse<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">https:\/\/example.com\/path?query=hello#fragment<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">uri<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">getHost<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ example.com<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">uri<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">getPath<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ \/path<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">uri<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">getQuery<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ query=hello<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative\">PHP<\/span><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>3. Clone With<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can now update properties during object cloning using the new clone()&nbsp;syntax with an associative array \u2014 perfect for readonly&nbsp;classes.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class\u00a0Point {\n\u00a0\u00a0\u00a0\u00a0public\u00a0function\u00a0__construct(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0public\u00a0readonly\u00a0int\u00a0$x,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0public\u00a0readonly\u00a0int\u00a0$y,\n\u00a0\u00a0\u00a0\u00a0) {}\n}\n\n$point\u00a0=\u00a0new\u00a0Point(1,\u00a02);\n$moved\u00a0=\u00a0clone($point,\u00a0&#91;'x'\u00a0=> 10&#93;);\n\necho\u00a0$moved->x;\u00a0\/\/ 10\necho\u00a0$moved->y;\u00a0\/\/ 2<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #8FBCBB\">Point<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\u00a0\u00a0\u00a0\u00a0public\u00a0function\u00a0__construct<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0public\u00a0readonly\u00a0int\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">x<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0public\u00a0readonly\u00a0int\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">y<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">point\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0new\u00a0Point<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #88C0D0\">\u00a02<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">moved\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0clone<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">point<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #88C0D0\">\u00a0<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">x<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #88C0D0\">\u00a0<\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #88C0D0\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">moved<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #D8DEE9\">x<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #616E88\">\/\/ 10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">moved<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #D8DEE9\">y<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #616E88\">\/\/ 2<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative\">PHP<\/span><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>4. #[\\NoDiscard]&nbsp;Attribute<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This attribute warns developers when a function\u2019s return value isn\u2019t used \u2014 preventing silent bugs in APIs where the return value matters.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#&#91;\\NoDiscard&#93;\nfunction\u00a0findUser(int\u00a0$id):\u00a0?User {\n\u00a0\u00a0\u00a0\u00a0return\u00a0User::find($id);\n}\n\n\/\/ This will trigger a warning \u2014 return value ignored!\nfindUser(42);\n\n\/\/ Correct usage:\n$user\u00a0=\u00a0findUser(42);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">#&#91;<\/span><span style=\"color: #ECEFF4\">\\<\/span><span style=\"color: #D8DEE9FF\">NoDiscard&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #88C0D0\">findUser<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">id<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">:<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #8FBCBB\">User<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">\u00a0\u00a0\u00a0\u00a0return\u00a0User<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">find<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">id<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ This will trigger a warning \u2014 return value ignored!<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">findUser<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">42<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ Correct usage:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">user\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0findUser<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">42<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative\">PHP<\/span><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>5. array_first()&nbsp;and array_last()<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Two new built-in array functions that return the first or last element of an array. Returns null&nbsp;for empty arrays \u2014 great to compose with the ??&nbsp;operator.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$items\u00a0=\u00a0&#91;'apple',\u00a0'banana',\u00a0'cherry'&#93;;\n\necho\u00a0array_first($items);\u00a0\/\/ apple\necho\u00a0array_last($items);\u00a0\u00a0\/\/ cherry\n\n$empty\u00a0=\u00a0[];\necho\u00a0array_first($empty) ??\u00a0'No items';\u00a0\/\/ No items<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">items\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">apple<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">banana<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">cherry<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #88C0D0\">\u00a0array_first<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">items<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #616E88\">\/\/ apple<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #88C0D0\">\u00a0array_last<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">items<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ cherry<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">empty\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #ECEFF4\">[]<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #88C0D0\">\u00a0array_first<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">empty<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">??<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">No items<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #616E88\">\/\/ No items<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative\">PHP<\/span><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>6. Persistent cURL Share Handles<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Handles created with curl_share_init_persistent()&nbsp;now persist across PHP requests, avoiding repeated connection initialization to the same hosts.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$share\u00a0=\u00a0curl_share_init_persistent(&#91;'cookie',\u00a0'ssl_session'&#93;);\n\n$ch\u00a0=\u00a0curl_init('https:\/\/api.example.com\/data');\ncurl_setopt($ch,\u00a0CURLOPT_SHARE,\u00a0$share);\ncurl_setopt($ch,\u00a0CURLOPT_RETURNTRANSFER,\u00a0true);\n\n$response\u00a0=\u00a0curl_exec($ch);\ncurl_close($ch);\n\/\/ $share persists for the next request automatically<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">share\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0curl_share_init_persistent<\/span><span style=\"color: #ECEFF4\">(&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">cookie<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #88C0D0\">\u00a0<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ssl_session<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">ch\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0curl_init<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">https:\/\/api.example.com\/data<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">curl_setopt<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">ch<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #88C0D0\">\u00a0CURLOPT_SHARE<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #88C0D0\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">share<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">curl_setopt<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">ch<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #88C0D0\">\u00a0CURLOPT_RETURNTRANSFER<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #88C0D0\">\u00a0true<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">response\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0curl_exec<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">ch<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">curl_close<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">ch<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ $share persists for the next request automatically<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative\">PHP<\/span><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>7. Closures in Constant Expressions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Static closures and first-class callables can now be used in constant expressions \u2014 including attribute parameters and default property values.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class\u00a0Formatter {\n\u00a0\u00a0\u00a0\u00a0public\u00a0const\u00a0TRIM\u00a0=\u00a0trim(...);\n\u00a0\u00a0\u00a0\u00a0public\u00a0const\u00a0UPPER\u00a0=\u00a0strtoupper(...);\n}\n\n$process\u00a0=\u00a0Formatter::TRIM;\necho\u00a0$process(' \u00a0hello \u00a0');\u00a0\/\/ \"hello\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #8FBCBB\">Formatter<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0public\u00a0const\u00a0TRIM\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0trim<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">...<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0public\u00a0const\u00a0UPPER\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0strtoupper<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">...<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">process\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #8FBCBB\">\u00a0Formatter<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #D8DEE9FF\">TRIM<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">process<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\"> \u00a0hello \u00a0<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #616E88\">\/\/ &quot;hello&quot;<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative\">PHP<\/span><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>8. Property Hooks (Expanded Support)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8.5 expands property hooks, giving developers more granular control over how class properties are read and written \u2014 reducing boilerplate significantly.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class\u00a0User {\n\u00a0\u00a0\u00a0\u00a0public\u00a0string\u00a0$name\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0get => strtoupper($this->name);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0set(string\u00a0$value) => $this->name =\u00a0trim($value);\n\u00a0\u00a0\u00a0\u00a0}\n}\n\n$user\u00a0=\u00a0new\u00a0User();\n$user->name =\u00a0' \u00a0BIG BOSS \u00a0';\necho\u00a0$user->name;\u00a0\/\/ BIG BOSS<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #8FBCBB\">User<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0public\u00a0string\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">name\u00a0<\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0get <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">strtoupper<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$this-&gt;<\/span><span style=\"color: #D8DEE9\">name<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0set<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">string<\/span><span style=\"color: #88C0D0\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">value<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$this-&gt;<\/span><span style=\"color: #D8DEE9\">name<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0trim<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">value<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">user\u00a0<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">\u00a0new\u00a0User<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">user<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #D8DEE9\">name<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\"> \u00a0BIG BOSS \u00a0<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">echo<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">user<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #D8DEE9\">name<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">\u00a0<\/span><span style=\"color: #616E88\">\/\/ BIG BOSS<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative\">PHP<\/span><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>9. JIT Compiler Improvements<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Under the hood, PHP 8.5 ships with further JIT (Just-In-Time) compiler improvements that deliver measurable speed boosts \u2014 especially for CPU-intensive applications and high-traffic web apps.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a>What\u2019s Deprecated in PHP 8.5?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8.5 deprecates several legacy functions and behaviors. Key ones to watch:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>shell_exec()\u00a0behavior changes<\/li>\n\n\n\n<li>array_key_exists()\u00a0with non-array arguments<\/li>\n\n\n\n<li>class_alias()\u00a0restrictions<\/li>\n\n\n\n<li>Magic methods __sleep(), __wakeup(), __serialize(), and __unserialize()\u00a0updates<\/li>\n\n\n\n<li>Implicit nullable type declarations<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Running your project through a static analysis tool like <strong>PHPStan<\/strong>&nbsp;or <strong>Psalm<\/strong>&nbsp;is a smart first step before upgrading.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a>Should You Upgrade?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Yes \u2014 but plan it carefully.<\/strong>&nbsp;Here\u2019s a quick checklist:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Test your codebase<\/strong>\u00a0against PHP 8.5 in a staging environment first<\/li>\n\n\n\n<li><strong>Update your dependencies<\/strong>\u00a0\u2014 check Composer packages for PHP 8.5 compatibility<\/li>\n\n\n\n<li><strong>Review deprecation notices<\/strong>\u00a0\u2014 fix them before they become breaking errors<\/li>\n\n\n\n<li><strong>Leverage new features<\/strong>\u00a0\u2014 refactor where it makes sense for cleaner, faster code<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a>The Bottom Line<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8.5 is a solid, developer-friendly release that rewards those who keep their codebases modern and well-maintained. From the pipe operator to async improvements and performance boosts, it\u2019s a release worth embracing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whether you\u2019re running a personal blog or a <a href=\"https:\/\/turbo.host\/web-hosting\/\" type=\"link\" id=\"https:\/\/turbohost.co.mz\/web-hosting\/\">high-traffic web<\/a> application, staying current with PHP means faster, safer, and more maintainable code \u2014 and that\u2019s always worth the upgrade.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a>References &amp; Further Reading<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.php.net\/releases\/8.5\/en.php\" target=\"_blank\" rel=\"noopener\">Official PHP 8.5 Release Page<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.php.net\/manual\/en\/migration85.php\" target=\"_blank\" rel=\"noopener\">PHP 8.5 Migration Guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.php.net\/ChangeLog-8.php#PHP_8_5\" target=\"_blank\" rel=\"noopener\">PHP 8.5 ChangeLog<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/pipe-operator-v3\" target=\"_blank\" rel=\"noopener\">RFC: Pipe Operator v3<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/url_parsing_api\" target=\"_blank\" rel=\"noopener\">RFC: URL Parsing API (URI Extension)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/clone_with_v2\" target=\"_blank\" rel=\"noopener\">RFC: Clone With v2<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/marking_return_value_as_important\" target=\"_blank\" rel=\"noopener\">RFC: NoDiscard Attribute<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/array_first_last\" target=\"_blank\" rel=\"noopener\">RFC: array_first \/ array_last<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/curl_share_persistence\" target=\"_blank\" rel=\"noopener\">RFC: cURL Share Persistence<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wiki.php.net\/rfc\/closures_in_const_expr\" target=\"_blank\" rel=\"noopener\">RFC: Closures in Constant Expressions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/thephp.foundation\/blog\/2025\/07\/11\/php-85-adds-pipe-operator\/\" target=\"_blank\" rel=\"noopener\">PHP Foundation Blog: Pipe Operator<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/thephp.foundation\/blog\/2025\/10\/10\/php-85-uri-extension\/\" target=\"_blank\" rel=\"noopener\">PHP Foundation Blog: URI Extension<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>PHP continues to evolve, and version 8.5 brings a fresh wave of improvements that make writing modern, clean, and performant code easier than ever. Whether you\u2019re a seasoned developer or just getting started, here\u2019s everything you need to know about PHP 8.5. What Is PHP 8.5? PHP 8.5 is the latest major release in the [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":4396,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4391","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-outros"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/posts\/4391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/comments?post=4391"}],"version-history":[{"count":6,"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/posts\/4391\/revisions"}],"predecessor-version":[{"id":4452,"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/posts\/4391\/revisions\/4452"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/media\/4396"}],"wp:attachment":[{"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/media?parent=4391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/categories?post=4391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/turbo.host\/blog\/wp-json\/wp\/v2\/tags?post=4391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}