{"id":16264,"date":"2022-12-08T00:00:00","date_gmt":"2022-12-08T00:00:00","guid":{"rendered":"https:\/\/newblog.siteground.com\/en\/?p=16264"},"modified":"2026-05-13T06:58:29","modified_gmt":"2026-05-13T06:58:29","slug":"php-8-2-release-candidate-on-siteground-servers","status":"publish","type":"post","link":"https:\/\/www.siteground.com\/blog\/php-8-2-release-candidate-on-siteground-servers\/","title":{"rendered":"PHP 8.2 Is Now Stable and Available on SiteGround Servers"},"content":{"rendered":"\n<div class=\"post-page__colored-blocks post-page__colored-blocks--update\"><p class=\"text text--size-medium color-darkest\"><strong>PHP 8.4: Stay Updated!<\/strong>\u00a0\ud83d\ude80 Check out our latest blog post to explore the newest features and enhancements in <a href=\"https:\/\/www.siteground.com\/academy\/php-8-4\/\">PHP 8.4<\/a>.<\/p><\/div>\n\n\n\n<p>It\u2019s that time again! Time for the Santa ElePHPant to visit all the good little PHP developers around the world and shower them with new goodies that make it easier for them to build the web.<\/p>\n\n\n\n<p>As of this writing, PHP 8.2 is in Release Candidate 1 (RC1) status. We are in the late stages of development and bug fixing for this version and you can tell because forward looking web hosts like SiteGround are now making the RC builds available for their clients to test with. (Did you see the word TEST there? For those who don\u2019t know what that means, it means NOT IN PRODUCTION!)<\/p>\n\n\n\n<p>So let\u2019s take a look at some of the new presents that Santa ElePHPant is bringing us.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-new-goodies\"><span class=\"ez-toc-section\" id=\"new-goodies\"><\/span>New Goodies<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>First up, let\u2019s take a look at a few of the new features that will be of interest to PHP developers. This is not an exhaustive list of the new goodies in Santa ElePHPant\u2019s bag. It\u2019s more a short list of the things I think the majority of PHP developers will be interested in.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-readonly-classes\"><strong>readonly <\/strong>classes<\/h3>\n\n\n\n<p>In PHP 8.1 we got <strong>readonly<\/strong> properties for classes. This was a great leap forward for a lot of projects. However, there is still a small hole that needed to be plugged, clases. Yes, you can make every typed property in a class as read only and you are good to go, but honestly, that\u2019s a lot of typing and if we know anything, we know that developers are lazy. So instead, in PHP 8.2 we can mark an entire class as <strong>readonly<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-verse sg-verse-block\">readonly class MyClass {\n    public int $myProp;\n    public string $myOtherProp;\n    public __construct(string $myOtherProp, int $myProp) \n    {\n        $this-&gt;myProp = $myProp;\n        $this-&gt;myOtherProp = $myOtherProp;\n    }\n}<\/pre>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p><\/p>\n<\/div><\/div>\n\n\n\n<p>Here we have a class defined as <strong>readonly<\/strong>. We have 2 properties of the class and both of them are inherently readonly. The readonly rules from PHP 8.1 still apply. You can initialize the property only once, after that it is set.&nbsp;<\/p>\n\n\n\n<p><strong>$myObj = new MyClass(\u2018Cal was here\u2019,42);<\/strong><\/p>\n\n\n\n<p>However, once they are initialized, they are now immutable.<\/p>\n\n\n\n<p><strong>$myObj-&gt;myProp = \u2018Cal is no longer here\u2019;<\/strong><\/p>\n\n\n\n<p><strong>\/\/ Fatal Error: Uncaught Error: Cannot modify readonly property MyClass::myProp<\/strong><\/p>\n\n\n\n<p>One other behavior of the readonly class is that properties cannot be dynamically added to the class, ever. Below we talk about deprecating Dynamic properties and how that\u2019s a good thing. There is even an annotation that allows you to override this. However, if you mark a class as <strong>readonly<\/strong>, then it cannot be overridden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-constants-in-traits\">Constants in Traits<\/h3>\n\n\n\n<p>Traits have been with us in PHP since PHP 5.4. They have long been the language\u2019s answer to \u201ccomposition over inheritance\u201d. Now traits are getting an interesting new feature, the ability to define constants in a trait.<\/p>\n\n\n\n<p><strong>trait MyTrait {<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;private const MY_CONSTANT = 42;<\/strong><\/p>\n\n\n\n<p><strong>}<\/strong><\/p>\n\n\n\n<p>Now, if your trait uses a constant, you can define it in the trait and not have to remember to define it in each class that uses the trait.<\/p>\n\n\n\n<p><strong>trait MyTrait {<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;private const MY_CONSTANT = 42;<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;public function meaningOfLife() : int<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;{<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return self::MY_CONSTANT;<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;}<\/strong><\/p>\n\n\n\n<p><strong>}<\/strong><\/p>\n\n\n\n<p><strong>class MyClass {<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;use MyTrait;<\/strong><\/p>\n\n\n\n<p><strong>}<\/strong><\/p>\n\n\n\n<p><strong>$myObj = new MyClass();<\/strong><\/p>\n\n\n\n<p><strong>echo $myObj-&gt;meaningOfLife(); \/\/ prints 42<\/strong><\/p>\n\n\n\n<p>Like everything in life, there are a few rules.<\/p>\n\n\n\n<p>Traits can define class constants. If a class uses that trait it can also define the same class constant <strong>as long as both the visibility and value are exactly the same<\/strong>. So the example above works but the one below will trigger a fatal error<\/p>\n\n\n\n<p><strong>trait MyTrait {<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;private const MY_CONSTANT = 42;<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;public function meaningOfLife() : int<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;{<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return self::MY_CONSTANT;<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;}<\/strong><\/p>\n\n\n\n<p><strong>}<\/strong><\/p>\n\n\n\n<p><strong>class MyClass {<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;use MyTrait;<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;public const MY_CONSTANT = 42;<\/strong><\/p>\n\n\n\n<p><strong>}<\/strong><\/p>\n\n\n\n<p>Still, even with the rules that you have to follow, this is a real step forward. Traits are a great way to share code between classes and now they are even more self-contained.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-random-extension-5-x-random-extension-improvement\">Random Extension 5.x + Random Extension Improvement<\/h3>\n\n\n\n<p>The original PHP random number generator is still in the base code. It\u2019s never been great and it\u2019s absolutely useless for cryptographic uses. In PHP 7, we got a couple new functions, <strong>random_int()<\/strong> and <strong>random_bytes()<\/strong>. They went a long way to fix the problems but under the hood, they are just interfaces to the native OS\u2019s random number generator. At the time this was a good solution but the problem is it\u2019s a slow one.&nbsp;<\/p>\n\n\n\n<p>Now with PHP 8.2 we get not only an entirely new Random number generator, it is built into PHP,&nbsp; and we get an extensible object oriented interface to it.<\/p>\n\n\n\n<p>This is actually two different RFCs that I\u2019m lumping together. After the first one \u201cRandom Extension 5.x\u201d was voted on and passed, it was discovered that there was a few issues with it. A second RFC, \u201cRandom Extension Improvement\u201d,&nbsp; was prepared and voted on to fix the issues found with the first one.<\/p>\n\n\n\n<p>The end result is a new set of classes that give us better pseudo-random numbers in PHP.<\/p>\n\n\n\n<p>While we are actually getting several new random number generators (RNG), for simplicity I\u2019ll discuss the new <strong>Random\\Engine\\Secure<\/strong> class.<\/p>\n\n\n\n<p><strong>$engine = new Random\\Engine\\Secure();<\/strong><\/p>\n\n\n\n<p><strong>$randomString = $engine-&gt;generate(); \/\/ a random binary string<\/strong><\/p>\n\n\n\n<p><strong>echo bin2hex($randomString);&nbsp;<\/strong><\/p>\n\n\n\n<p>Now if we want to do something like sort an array, we need one of the new Randomizer objects.&nbsp;<\/p>\n\n\n\n<p><strong>$randomizer = new Random\\Randomizer($engine);<\/strong><\/p>\n\n\n\n<p><strong>$items = range(1, 10);<\/strong><\/p>\n\n\n\n<p><strong>$randomizedItems = $randomizer-&gt;shuffleArray($items);<\/strong><\/p>\n\n\n\n<p><strong>print_r($randomizedItems);<\/strong><\/p>\n\n\n\n<p>Now in the above example, we used the Secure engine. The secure engine does not accept a seed and will always generate a non-reproducible string. The engines that allow you to specify a seed will produce the same results each time if you use the same seed.&nbsp;<\/p>\n\n\n\n<p>The Randomizer class also provides several other methods that are really what PHP developers are looking for.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>getInt() : int<\/strong><br>This replaces the old <strong>mt_rand()<\/strong> function<\/li>\n\n\n\n<li><strong>getInt(int $min, int $max) : int<\/strong><strong><br><\/strong>This replaces both the old <strong>mt_rand()<\/strong> function as well as the newer <strong>random_int()<\/strong> function.<\/li>\n\n\n\n<li><strong>getBytes(int length): string<\/strong><br>This replaces the <strong>random_bytes()<\/strong> function&nbsp;<\/li>\n\n\n\n<li><strong>shuffleArray(array $array): array<\/strong><br>This replaces the old <strong>shuffle_array()<\/strong> function<\/li>\n\n\n\n<li><strong>shuffleString(string $string): string<\/strong><br>This replaces the old <strong>str_shuffle()<\/strong> function<\/li>\n<\/ul>\n\n\n\n<p>Among other things, since this brings all of the randomizing functionality into a single area of the engine, it streamlines the core code and will make further improvements easier.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-so-long-and-thanks-for-all-the-fish\"><span class=\"ez-toc-section\" id=\"%e2%80%9cso-long-and-thanks-for-all-the-fish%e2%80%9d\"><\/span>\u201cSo long and thanks for all the fish\u201d<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>All good things must come to an end and that includes some features and commands of PHP. Let\u2019s look at a couple of the important deprecations that if you aren\u2019t careful will end up causing you problems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-deprecate-dynamic-properties\">Deprecate dynamic properties<\/h3>\n\n\n\n<p>At first blush, this one seems like it\u2019s going to be a huge problem. Since PHP got the current object model, it\u2019s been possible to add properties to an object any time you want. Now somebody thinks this behavior is a bad thing. (HINT: It was always a bad thing but one a lot of developers took advantage of.)<\/p>\n\n\n\n<p><strong>class MyClass {<\/strong><\/p>\n\n\n\n<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;public string $name;<\/strong><\/p>\n\n\n\n<p><strong>}<\/strong><\/p>\n\n\n\n<p><strong>$myObj = new MyClass():<\/strong><\/p>\n\n\n\n<p><strong>$myObj-&gt;nmae = \u2018Cal Evans\u2019;<\/strong><\/p>\n\n\n\n<p>Notice that I misspelled the property <strong>name<\/strong>. I know I\u2019m probably the only developer who has misspelled a property name but in PHP when it happens, I get a new property on the object and the original property remains unchanged. That was not my intent.<\/p>\n\n\n\n<p>Starting with PHP 8.2, this will emit a DEPRECATED WARNING.<\/p>\n\n\n\n<p>There are 3 exceptions to this new rule.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Any instance of StdClass will still be able to accept dynamic properties.<\/li>\n\n\n\n<li>Any class with magic __get() and __set() methods will still accept any property.<\/li>\n\n\n\n<li>Any class that has the compiler annotation <strong>#[AllowDynamicProperties] <\/strong>and any child class will allow dynamic properties to be set.<\/li>\n<\/ol>\n\n\n\n<p>So while all is not lost for those that depend on this \u201cfeature\u201d of PHP, if you are still going to use it, you are going to have to make some changes to your code.&nbsp;<\/p>\n\n\n\n<p>The good news is that all that will happen right now is the warning emitted to the log files. So while it might fill up your log files reminding you that you need to fix this, PHP 8.2 won\u2019t break your code. That happens in PHP 9.0 when the warning &#8211; and the ability to automatically add dynamic properties &#8211; gets removed from PHP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-partial-deprecate-string-interpolation\">(Partial) Deprecate ${} string interpolation<\/h3>\n\n\n\n<p>This is another depreciation that on the surface I thought was going to be a huge deal. Turns out, it is probably not going to affect many developers.<\/p>\n\n\n\n<p>There are 4 ways to implement the \u201c{$variableName}\u201d syntax, 2 that make sense, and two that don\u2019t. The two that don\u2019t are going away.<\/p>\n\n\n\n<p><strong>echo \u201c$meaningOfLife\u201d;<\/strong><\/p>\n\n\n\n<p>By far, this is the most common version of string interpolation. Just put the variable in a string with double quotes. If you are doing this, you are fine, this is one of the two ways that are staying.<\/p>\n\n\n\n<p><strong>echo \u201c{$meaningOfLife}\u201d;<\/strong><\/p>\n\n\n\n<p><strong>echo \u201c{$dogulasAdams-&gt;meaningOfLife()}\u201d;<\/strong><\/p>\n\n\n\n<p>I always considered this way \u201cold-skool\u201d. Yeah, we used to do it way back in the day but I\u2019ve not done it this way in a long time. Still this works, it\u2019s clean, and it\u2019s easy to understand. This is the other one that is staying.<\/p>\n\n\n\n<p>This is also the only method that allows you to use object properties and methods. So if you want to use string interpolation with an object, you will need this method.<\/p>\n\n\n\n<p><strong>echo \u201c${meaningOfLife}\u201d;<\/strong><\/p>\n\n\n\n<p>This one is going away. Yes, it does the same thing as the first two, but it is a little more confusing because the <strong>$<\/strong> is outside of the braces.&nbsp;<\/p>\n\n\n\n<p><strong>$fourtyTwo = 42;<\/strong><\/p>\n\n\n\n<p><strong>$meaningOfLife = \u2018fourtyTwo\u2019;<\/strong><\/p>\n\n\n\n<p><strong>echo \u201c${meaningOfLife}\u201d;<\/strong><\/p>\n\n\n\n<p>Finally, we have the way that you can use \u201cvariable variables\u201d from within string interpolation. This is just too many levels of indirection. In the code above, we eventually get to the point where we echo out 42, but we take the long way around.&nbsp;<\/p>\n\n\n\n<p>Starting in PHP 8.2, the last two structures will emit a DEPRECATION WARNING in your log files. In PHP 9.0, they will stop working altogether and cause your program to crash. (or throw an Error that you can catch, but probably can\u2019t recover from.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wrap-up\"><span class=\"ez-toc-section\" id=\"wrap-up\"><\/span>Wrap Up<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This is the first PHP 8.2 Release Candidate. Don\u2019t play with it on any production site. If you want to test it with an existing site, set up a new site for testing, clone your production site into it, and play with that. When you are done, you can just delete it.&nbsp;<\/p>\n\n\n\n<p>As you poke around in your new testing environment, check your log files after every test. Make sure nothing fails and see if any new WARNINGS pop up.&nbsp;<\/p>\n\n\n\n<p>If PHP 8.2 is anything like PHP 8.0 and PHP 8.1, I don\u2019t expect modern PHP code to have issues with it. Thankfully, Santa ElePHPant\u2019s Elves that work for SiteGround make it incredibly easy for you to test things out to make sure your site can run as fast as possible with PHP 8.2<\/p>\n\n\n\n<p>Speaking of performance, PHP 8.2 hasn\u2019t been properly benchmarked yet, but we have come to expect every version of PHP to be a little faster than previous versions. With changes to the CSPRNG system and other things like removing the old libmysql, it\u2019s a safe bet that this version will be faster than PHP 8.1.<\/p>\n\n\n\n<p><br>While you are testing, cloning, and observing results, make sure you take time to tweet out a huge THANK YOU to Santa ELePHPant and all of the little ElePHPant Elves that made this release possible. Rumor has it that they keep an eye on <a rel=\"noreferrer noopener\" href=\"https:\/\/twitter.com\/@php_net\" target=\"_blank\">twitter.com\/@php_net<\/a><\/p>\n\n\n\n<p>To celebrate the latest release candidate PHP 8.2, we are giving away 5 exclusive SiteGround PHP elephant plush toys (a.k.a Groundy) in a raffle, running from September 8, 2022 until September 11, 2022. Read more on&nbsp;<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/twitter.com\/SiteGround\/status\/1567943475634528259\">Twitter<\/a>.<\/p>\n\n\n\n<p>[subscribe_cta]<\/p>\n","protected":false},"excerpt":{"rendered":"PHP 8.4: Stay Updated!\u00a0\ud83d\ude80 Check out our latest blog post to explore the newest features and enhancements in PHP 8.4. It\u2019s that time again! Time for the Santa ElePHPant to visit all the good little PHP developers around the world and shower them with new goodies that make it easier for them to build the&hellip;","protected":false},"author":81,"featured_media":16610,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2018],"tags":[],"class_list":["post-16264","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-product-updates"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.2 (Yoast SEO v24.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP 8.2 Release Candidate on SiteGround Servers - SiteGround Blog<\/title>\n<meta name=\"description\" content=\"PHP 8.4: Stay Updated!\u00a0\ud83d\ude80 Check out our latest blog post to explore the newest features and enhancements in PHP 8.4. It\u2019s that time again! Time for the\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP 8.2 Is Now Stable and Available on SiteGround Servers\" \/>\n<meta property=\"og:description\" content=\"We\u2019re happy to announce that PHP 8.2 is now considered stable and has been deployed on all SiteGround servers. Once again, we\u2019re among the first companies to already have it available on our hosting platform.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/\" \/>\n<meta property=\"og:site_name\" content=\"SiteGround\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/siteground\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-08T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-13T06:58:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg\" \/>\n<meta name=\"author\" content=\"Cal Evans\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"PHP 8.2 Is Now Stable and Available on SiteGround Servers\" \/>\n<meta name=\"twitter:description\" content=\"We\u2019re happy to announce that PHP 8.2 is now considered stable and has been deployed on all SiteGround servers.\" \/>\n<meta name=\"twitter:creator\" content=\"@siteground\" \/>\n<meta name=\"twitter:site\" content=\"@siteground\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cal Evans\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/\"},\"author\":{\"name\":\"Cal Evans\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/#\/schema\/person\/b7d955fe8f207e8e13a00552dc043fff\"},\"headline\":\"PHP 8.2 Is Now Stable and Available on SiteGround Servers\",\"datePublished\":\"2022-12-08T00:00:00+00:00\",\"dateModified\":\"2026-05-13T06:58:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/\"},\"wordCount\":2036,\"commentCount\":10,\"publisher\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg\",\"articleSection\":[\"Product Updates\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/\",\"url\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/\",\"name\":\"PHP 8.2 Release Candidate on SiteGround Servers - SiteGround Blog\",\"isPartOf\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg\",\"datePublished\":\"2022-12-08T00:00:00+00:00\",\"dateModified\":\"2026-05-13T06:58:29+00:00\",\"description\":\"PHP 8.4: Stay Updated!\u00a0\ud83d\ude80 Check out our latest blog post to explore the newest features and enhancements in PHP 8.4. It\u2019s that time again! Time for the\",\"breadcrumb\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#primaryimage\",\"url\":\"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg\",\"contentUrl\":\"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg\",\"width\":1400,\"height\":700,\"caption\":\"stable release of php 8.2 version\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/newblog.siteground.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP 8.2 Is Now Stable and Available on SiteGround Servers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/#website\",\"url\":\"https:\/\/newblog.siteground.com\/en\/\",\"name\":\"SiteGround Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/newblog.siteground.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/#organization\",\"name\":\"SiteGround Blog\",\"url\":\"https:\/\/newblog.siteground.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2025\/01\/Siteground-Logo-on-white.jpg\",\"contentUrl\":\"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2025\/01\/Siteground-Logo-on-white.jpg\",\"width\":1200,\"height\":400,\"caption\":\"SiteGround Blog\"},\"image\":{\"@id\":\"https:\/\/newblog.siteground.com\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/siteground\",\"https:\/\/x.com\/siteground\",\"https:\/\/www.instagram.com\/siteground\/\",\"https:\/\/www.youtube.com\/@siteground\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/#\/schema\/person\/b7d955fe8f207e8e13a00552dc043fff\",\"name\":\"Cal Evans\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/newblog.siteground.com\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b8191d355780536d1c461f7e25b75129?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b8191d355780536d1c461f7e25b75129?s=96&d=mm&r=g\",\"caption\":\"Cal Evans\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/calevans\/\"],\"url\":\"https:\/\/newblog.siteground.com\/en\/author\/calevans\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP 8.2 Release Candidate on SiteGround Servers - SiteGround Blog","description":"PHP 8.4: Stay Updated!\u00a0\ud83d\ude80 Check out our latest blog post to explore the newest features and enhancements in PHP 8.4. It\u2019s that time again! Time for the","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:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/","og_locale":"en_US","og_type":"article","og_title":"PHP 8.2 Is Now Stable and Available on SiteGround Servers","og_description":"We\u2019re happy to announce that PHP 8.2 is now considered stable and has been deployed on all SiteGround servers. Once again, we\u2019re among the first companies to already have it available on our hosting platform.","og_url":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/","og_site_name":"SiteGround","article_publisher":"https:\/\/www.facebook.com\/siteground","article_published_time":"2022-12-08T00:00:00+00:00","article_modified_time":"2026-05-13T06:58:29+00:00","og_image":[{"url":"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg","type":"","width":"","height":""}],"author":"Cal Evans","twitter_card":"summary_large_image","twitter_title":"PHP 8.2 Is Now Stable and Available on SiteGround Servers","twitter_description":"We\u2019re happy to announce that PHP 8.2 is now considered stable and has been deployed on all SiteGround servers.","twitter_creator":"@siteground","twitter_site":"@siteground","twitter_misc":{"Written by":"Cal Evans","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#article","isPartOf":{"@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/"},"author":{"name":"Cal Evans","@id":"https:\/\/newblog.siteground.com\/en\/#\/schema\/person\/b7d955fe8f207e8e13a00552dc043fff"},"headline":"PHP 8.2 Is Now Stable and Available on SiteGround Servers","datePublished":"2022-12-08T00:00:00+00:00","dateModified":"2026-05-13T06:58:29+00:00","mainEntityOfPage":{"@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/"},"wordCount":2036,"commentCount":10,"publisher":{"@id":"https:\/\/newblog.siteground.com\/en\/#organization"},"image":{"@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#primaryimage"},"thumbnailUrl":"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg","articleSection":["Product Updates"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/","url":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/","name":"PHP 8.2 Release Candidate on SiteGround Servers - SiteGround Blog","isPartOf":{"@id":"https:\/\/newblog.siteground.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#primaryimage"},"image":{"@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#primaryimage"},"thumbnailUrl":"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg","datePublished":"2022-12-08T00:00:00+00:00","dateModified":"2026-05-13T06:58:29+00:00","description":"PHP 8.4: Stay Updated!\u00a0\ud83d\ude80 Check out our latest blog post to explore the newest features and enhancements in PHP 8.4. It\u2019s that time again! Time for the","breadcrumb":{"@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#primaryimage","url":"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg","contentUrl":"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/08\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg","width":1400,"height":700,"caption":"stable release of php 8.2 version"},{"@type":"BreadcrumbList","@id":"https:\/\/newblog.siteground.com\/en\/php-8-2-release-candidate-on-siteground-servers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/newblog.siteground.com\/en\/"},{"@type":"ListItem","position":2,"name":"PHP 8.2 Is Now Stable and Available on SiteGround Servers"}]},{"@type":"WebSite","@id":"https:\/\/newblog.siteground.com\/en\/#website","url":"https:\/\/newblog.siteground.com\/en\/","name":"SiteGround Blog","description":"","publisher":{"@id":"https:\/\/newblog.siteground.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/newblog.siteground.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/newblog.siteground.com\/en\/#organization","name":"SiteGround Blog","url":"https:\/\/newblog.siteground.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/newblog.siteground.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2025\/01\/Siteground-Logo-on-white.jpg","contentUrl":"https:\/\/newblog.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2025\/01\/Siteground-Logo-on-white.jpg","width":1200,"height":400,"caption":"SiteGround Blog"},"image":{"@id":"https:\/\/newblog.siteground.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/siteground","https:\/\/x.com\/siteground","https:\/\/www.instagram.com\/siteground\/","https:\/\/www.youtube.com\/@siteground"]},{"@type":"Person","@id":"https:\/\/newblog.siteground.com\/en\/#\/schema\/person\/b7d955fe8f207e8e13a00552dc043fff","name":"Cal Evans","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/newblog.siteground.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b8191d355780536d1c461f7e25b75129?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8191d355780536d1c461f7e25b75129?s=96&d=mm&r=g","caption":"Cal Evans"},"sameAs":["https:\/\/www.linkedin.com\/in\/calevans\/"],"url":"https:\/\/newblog.siteground.com\/en\/author\/calevans\/"}]}},"_links":{"self":[{"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/posts\/16264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/users\/81"}],"replies":[{"embeddable":true,"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/comments?post=16264"}],"version-history":[{"count":19,"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/posts\/16264\/revisions"}],"predecessor-version":[{"id":24752,"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/posts\/16264\/revisions\/24752"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/media\/16610"}],"wp:attachment":[{"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/media?parent=16264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/categories?post=16264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/newblog.siteground.com\/en\/wp-json\/wp\/v2\/tags?post=16264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}