{"id":128944,"date":"2024-12-12T13:20:48","date_gmt":"2024-12-12T18:20:48","guid":{"rendered":"https:\/\/www.inmotionhosting.com\/support\/?p=128944"},"modified":"2025-02-07T11:50:29","modified_gmt":"2025-02-07T16:50:29","slug":"php-8-4","status":"publish","type":"post","link":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/","title":{"rendered":"PHP 8.4 Released"},"content":{"rendered":"<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84-1024x538.png\" alt=\"Featured image with text PHP 8.4 Released\" class=\"wp-image-128946\" srcset=\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84-1024x538.png 1024w, https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84-300x158.png 300w, https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84-768x403.png 768w, https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png 1200w\" sizes=\"auto, (min-width: 1360px) 876px, (min-width: 960px) calc(61.58vw + 51px), calc(100vw - 80px)\" \/><\/figure>\n\n\n\n<p>PHP 8.4 was released November 21, 2024. As of this writing, you can use PHP 8.4 on cPanel VPS environments and Dedicated servers by<a href=\"https:\/\/www.inmotionhosting.com\/support\/edu\/easyapache\/upgrade-php-easyapache\/\"> enabling the package in EasyApache<\/a>. PHP 8.4 will be added to shared servers after a brief period of testing by InMotion\u2019s Engineering team.<\/p>\n\n\n\n<p>As of January 17, 2025, PHP 8.4 is now available on all shared hosting plans. At this time, IonCube Loader  is not yet available for 8.4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s new in PHP 8.4?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">HTML 5 Compatibility\u00a0<\/h3>\n\n\n\n<p>One of the largest improvements is to the \\DOMDocument library, which in previous versions was <em>almost<\/em> compatible with HTML 4. While HTML 5 has been around for over 16 years, PHP still relied on a shoehorn method of using LIBXML and quiet errors to parse most tags outside of the most basic HTML tags.<\/p>\n\n\n\n<p>In PHP 8.4, the new \\Dom\\HTMLDocument object allows parsing of all HTML5-compliant tags, and because it\u2019s using the new \\Dom\\ namespace, remains fully backward-compatible with the old \\DOMDocument objects. This means developers can continue to use older code that works, but take advantage of the new features as they develop new products.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Property Hooks<\/h3>\n\n\n\n<p>Property Hooks will be a boon to developers, allowing them to skip a lot of the basic \u201cboilerplate\u201d code that was previously needed when creating new classes and objects.<\/p>\n\n\n\n<p>Take for example the following class from the <a href=\"https:\/\/www.php.net\/releases\/8.4\/en.php\">PHP Foundation announcement<\/a>, which contains a few private members:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono-NL.ttf\" style=\"font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(26px, 1.625rem, 39px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"\/\/PHP &lt; 8.4\nclass Locale\n{\n    private string $languageCode;\n    private string $countryCode;\n\n    public function __construct(string $languageCode, string $countryCode)\n    {\n        $this-&gt;setLanguageCode($languageCode);\n        $this-&gt;setCountryCode($countryCode);\n    }\n\n    public function getLanguageCode(): string\n    {\n        return $this-&gt;languageCode;\n    }\n\n    public function setLanguageCode(string $languageCode): void\n    {\n        $this-&gt;languageCode = $languageCode;\n    }\n\n    public function getCountryCode(): string\n    {\n        return $this-&gt;countryCode;\n    }\n\n    public function setCountryCode(string $countryCode): void\n    {\n        $this-&gt;countryCode = strtoupper($countryCode);\n    }\n\n    public function setCombinedCode(string $combinedCode): void\n    {\n        [$languageCode, $countryCode] = explode('_', $combinedCode, 2);\n\n        $this-&gt;setLanguageCode($languageCode);\n        $this-&gt;setCountryCode($countryCode);\n    }\n\n    public function getCombinedCode(): string\n    {\n        return \\sprintf(&quot;%s_%s&quot;, $this-&gt;languageCode, $this-&gt;countryCode);\n    }\n}\n\n$brazilianPortuguese = new Locale('pt', 'br');\nvar_dump($brazilianPortuguese-&gt;getCountryCode()); \/\/ BR\nvar_dump($brazilianPortuguese-&gt;getCombinedCode()); \/\/ pt_BR\n\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/\/PHP &lt; 8.4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Locale<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $languageCode;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $countryCode;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">__construct<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $languageCode, <\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $countryCode)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">setLanguageCode<\/span><span style=\"color: #E1E4E8\">($languageCode);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">setCountryCode<\/span><span style=\"color: #E1E4E8\">($countryCode);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">getLanguageCode<\/span><span style=\"color: #E1E4E8\">()<\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">languageCode;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setLanguageCode<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $languageCode)<\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">languageCode <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> $languageCode;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">getCountryCode<\/span><span style=\"color: #E1E4E8\">()<\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">countryCode;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setCountryCode<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $countryCode)<\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">countryCode <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">strtoupper<\/span><span style=\"color: #E1E4E8\">($countryCode);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setCombinedCode<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $combinedCode)<\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        [$languageCode, $countryCode] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">explode<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">'_'<\/span><span style=\"color: #E1E4E8\">, $combinedCode, <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">setLanguageCode<\/span><span style=\"color: #E1E4E8\">($languageCode);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">setCountryCode<\/span><span style=\"color: #E1E4E8\">($countryCode);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">getCombinedCode<\/span><span style=\"color: #E1E4E8\">()<\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">\\<\/span><span style=\"color: #79B8FF\">sprintf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">\"%s_%s\"<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">languageCode, <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">countryCode);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">$brazilianPortuguese <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">Locale<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">'pt'<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #9ECBFF\">'br'<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">var_dump<\/span><span style=\"color: #E1E4E8\">($brazilianPortuguese<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">getCountryCode<\/span><span style=\"color: #E1E4E8\">()); <\/span><span style=\"color: #6A737D\">\/\/ BR<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">var_dump<\/span><span style=\"color: #E1E4E8\">($brazilianPortuguese<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">getCombinedCode<\/span><span style=\"color: #E1E4E8\">()); <\/span><span style=\"color: #6A737D\">\/\/ pt_BR<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this example, the developer has had to write explicit getter and setter functions for each of the member variables. In PHP 8.4, however, it is much easier:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono-NL.ttf\" style=\"font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(26px, 1.625rem, 39px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"\/\/PHP 8.4\nclass Locale\n{\n    public string $languageCode;\n\n    public string $countryCode\n    {\n        set (string $countryCode) {\n            $this-&gt;countryCode = strtoupper($countryCode);\n        }\n    }\n\n    public string $combinedCode\n    {\n        get =&gt; \\sprintf(&quot;%s_%s&quot;, $this-&gt;languageCode, $this-&gt;countryCode);\n        set (string $value) {\n            [$this-&gt;languageCode, $this-&gt;countryCode] = explode('_', $value, 2);\n        }\n    }\n\n    public function __construct(string $languageCode, string $countryCode)\n    {\n        $this-&gt;languageCode = $languageCode;\n        $this-&gt;countryCode = $countryCode;\n    }\n}\n\n$brazilianPortuguese = new Locale('pt', 'br');\nvar_dump($brazilianPortuguese-&gt;countryCode); \/\/ BR\nvar_dump($brazilianPortuguese-&gt;combinedCode); \/\/ pt_BR\n\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/\/PHP 8.4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Locale<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $languageCode;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $countryCode<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">set<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $countryCode) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">countryCode <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">strtoupper<\/span><span style=\"color: #E1E4E8\">($countryCode);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $combinedCode<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #79B8FF\">get<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">\\<\/span><span style=\"color: #79B8FF\">sprintf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">\"%s_%s\"<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">languageCode, <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">countryCode);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">set<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $value) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            [<\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">languageCode, <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">countryCode] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">explode<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">'_'<\/span><span style=\"color: #E1E4E8\">, $value, <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">__construct<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $languageCode, <\/span><span style=\"color: #F97583\">string<\/span><span style=\"color: #E1E4E8\"> $countryCode)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">languageCode <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> $languageCode;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #79B8FF\">$this<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">countryCode <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> $countryCode;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">$brazilianPortuguese <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">Locale<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">'pt'<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #9ECBFF\">'br'<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">var_dump<\/span><span style=\"color: #E1E4E8\">($brazilianPortuguese<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">countryCode); <\/span><span style=\"color: #6A737D\">\/\/ BR<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">var_dump<\/span><span style=\"color: #E1E4E8\">($brazilianPortuguese<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\">combinedCode); <\/span><span style=\"color: #6A737D\">\/\/ pt_BR<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Invoke New Class Methods without Parentheses<\/h3>\n\n\n\n<p>In previous versions of PHP, if you wanted to invoke a method of a new class on the same line, the class declaration had to be wrapped in parentheses, like so:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$member = (new ExampleClass($argument))-&gt;getMember();<\/code><\/pre>\n\n\n\n<p>Now, this is more convenient with the new syntax:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$member = new ExampleClass($argument)-&gt;getMember();<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Implement Your Own Deprecations With the #[\\Deprecated] Attribute<\/h3>\n\n\n\n<p>You can now use PHP\u2019s built-in deprecation mechanism to alert developers using your code of new ways to accomplish deprecated methods. This will create automatic debug output, similar to deprecations in PHP core.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono-NL.ttf\" style=\"font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(26px, 1.625rem, 39px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"class MyClass\n{\n\t#[\\Deprecated(\n\t\tmessage: &quot;Doing it wrong, use MyClass::newMethod() instead&quot;,\n\t\tsince: &quot;8.4&quot;,\n\t)]\npublic function oldMethod(): string\n{\n\t\treturn $oldWay;\n\t}\n\n\tpublic function newMethod(): string\n\t{\n\t\treturn $newWay;\n\t}\n}\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">MyClass<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t#[<\/span><span style=\"color: #79B8FF\">\\Deprecated<\/span><span style=\"color: #E1E4E8\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">message<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #9ECBFF\">\"Doing it wrong, use MyClass::newMethod() instead\"<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">since<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #9ECBFF\">\"8.4\"<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t)]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">oldMethod<\/span><span style=\"color: #E1E4E8\">()<\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> $oldWay;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">newMethod<\/span><span style=\"color: #E1E4E8\">()<\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> $newWay;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">New Array Functions and More<\/h3>\n\n\n\n<p>New functions, including array_find(), array_find_key(), array_any(), and array_all() have been introduced to avoid having to write your own searching functions. There are many other new features, be sure to check out the <a href=\"https:\/\/www.php.net\/releases\/8.4\/en.php\">PHP Official Release announcement here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PHP 8.4 Availability on your InMotion Hosting Server<\/h2>\n\n\n\n<p>PHP 8.4 is already available on VPS and Shared accounts using cPanel. VPS users with root access can use <a href=\"https:\/\/www.inmotionhosting.com\/support\/edu\/easyapache\/upgrade-php-easyapache\/\">EasyApache for cPanel to install the new version<\/a>. <\/p>\n\n\n\n<p>Control Web Panel (CWP) does not yet support PHP 8.4. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP 8.4 was released November 21, 2024. As of this writing, you can use PHP 8.4 on cPanel VPS environments and Dedicated servers by enabling the package in EasyApache. PHP 8.4 will be added to shared servers after a brief period of testing by InMotion\u2019s Engineering team. As of January 17, 2025, PHP 8.4 is<a class=\"moretag\" href=\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/\"> Read More ><\/a><\/p>\n","protected":false},"author":57020,"featured_media":128946,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4300],"tags":[],"class_list":["post-128944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PHP 8.4 Released | InMotion Hosting<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP 8.4 Released | InMotion Hosting\" \/>\n<meta property=\"og:description\" content=\"PHP 8.4 was released November 21, 2024. As of this writing, you can use PHP 8.4 on cPanel VPS environments and Dedicated servers by enabling the package in EasyApache. PHP 8.4 will be added to shared servers after a brief period of testing by InMotion\u2019s Engineering team. As of January 17, 2025, PHP 8.4 is Read More &gt;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/\" \/>\n<meta property=\"og:site_name\" content=\"InMotion Hosting Support Center\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inmotionhosting\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-12T18:20:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-07T16:50:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jesse Owens\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@InMotionHosting\" \/>\n<meta name=\"twitter:site\" content=\"@InMotionHosting\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jesse Owens\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/\"},\"author\":{\"name\":\"Jesse Owens\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/person\/db97af6358b0c1726e01e49180e5f71c\"},\"headline\":\"PHP 8.4 Released\",\"datePublished\":\"2024-12-12T18:20:48+00:00\",\"dateModified\":\"2025-02-07T16:50:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/\"},\"wordCount\":432,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png\",\"articleSection\":[\"News \/ Announcements\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/\",\"name\":\"PHP 8.4 Released | InMotion Hosting\",\"isPartOf\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png\",\"datePublished\":\"2024-12-12T18:20:48+00:00\",\"dateModified\":\"2025-02-07T16:50:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#primaryimage\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png\",\"contentUrl\":\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.inmotionhosting.com\/support\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP 8.4 Released\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#website\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/\",\"name\":\"InMotion Hosting Support Center\",\"description\":\"Web Hosting Support &amp; Tutorials\",\"publisher\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.inmotionhosting.com\/support\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#organization\",\"name\":\"InMotion Hosting\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2023\/02\/inmotion-hosting-logo-yoast.jpg\",\"contentUrl\":\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2023\/02\/inmotion-hosting-logo-yoast.jpg\",\"width\":696,\"height\":696,\"caption\":\"InMotion Hosting\"},\"image\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/inmotionhosting\/\",\"https:\/\/x.com\/InMotionHosting\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/person\/db97af6358b0c1726e01e49180e5f71c\",\"name\":\"Jesse Owens\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/author\/jesseo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP 8.4 Released | InMotion Hosting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/","og_locale":"en_US","og_type":"article","og_title":"PHP 8.4 Released | InMotion Hosting","og_description":"PHP 8.4 was released November 21, 2024. As of this writing, you can use PHP 8.4 on cPanel VPS environments and Dedicated servers by enabling the package in EasyApache. PHP 8.4 will be added to shared servers after a brief period of testing by InMotion\u2019s Engineering team. As of January 17, 2025, PHP 8.4 is Read More >","og_url":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/","og_site_name":"InMotion Hosting Support Center","article_publisher":"https:\/\/www.facebook.com\/inmotionhosting\/","article_published_time":"2024-12-12T18:20:48+00:00","article_modified_time":"2025-02-07T16:50:29+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png","type":"image\/png"}],"author":"Jesse Owens","twitter_card":"summary_large_image","twitter_creator":"@InMotionHosting","twitter_site":"@InMotionHosting","twitter_misc":{"Written by":"Jesse Owens","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#article","isPartOf":{"@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/"},"author":{"name":"Jesse Owens","@id":"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/person\/db97af6358b0c1726e01e49180e5f71c"},"headline":"PHP 8.4 Released","datePublished":"2024-12-12T18:20:48+00:00","dateModified":"2025-02-07T16:50:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/"},"wordCount":432,"commentCount":0,"publisher":{"@id":"https:\/\/www.inmotionhosting.com\/support\/#organization"},"image":{"@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png","articleSection":["News \/ Announcements"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/","url":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/","name":"PHP 8.4 Released | InMotion Hosting","isPartOf":{"@id":"https:\/\/www.inmotionhosting.com\/support\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#primaryimage"},"image":{"@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png","datePublished":"2024-12-12T18:20:48+00:00","dateModified":"2025-02-07T16:50:29+00:00","breadcrumb":{"@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#primaryimage","url":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png","contentUrl":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.inmotionhosting.com\/support\/news\/php-8-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inmotionhosting.com\/support\/"},{"@type":"ListItem","position":2,"name":"PHP 8.4 Released"}]},{"@type":"WebSite","@id":"https:\/\/www.inmotionhosting.com\/support\/#website","url":"https:\/\/www.inmotionhosting.com\/support\/","name":"InMotion Hosting Support Center","description":"Web Hosting Support &amp; Tutorials","publisher":{"@id":"https:\/\/www.inmotionhosting.com\/support\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inmotionhosting.com\/support\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.inmotionhosting.com\/support\/#organization","name":"InMotion Hosting","url":"https:\/\/www.inmotionhosting.com\/support\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/logo\/image\/","url":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2023\/02\/inmotion-hosting-logo-yoast.jpg","contentUrl":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2023\/02\/inmotion-hosting-logo-yoast.jpg","width":696,"height":696,"caption":"InMotion Hosting"},"image":{"@id":"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inmotionhosting\/","https:\/\/x.com\/InMotionHosting"]},{"@type":"Person","@id":"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/person\/db97af6358b0c1726e01e49180e5f71c","name":"Jesse Owens","url":"https:\/\/www.inmotionhosting.com\/support\/author\/jesseo\/"}]}},"jetpack_featured_media_url":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2024\/12\/php-84.png","jetpack_sharing_enabled":true,"primary_category":{"id":4300,"name":"News \/ Announcements","slug":"news","link":"https:\/\/www.inmotionhosting.com\/support\/news\/"},"_links":{"self":[{"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/posts\/128944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/users\/57020"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/comments?post=128944"}],"version-history":[{"count":4,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/posts\/128944\/revisions"}],"predecessor-version":[{"id":129275,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/posts\/128944\/revisions\/129275"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/media\/128946"}],"wp:attachment":[{"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/media?parent=128944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/categories?post=128944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/tags?post=128944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}