{"id":1152,"date":"2026-03-25T22:25:30","date_gmt":"2026-03-25T22:25:30","guid":{"rendered":"https:\/\/wade.one\/blog\/?p=1152"},"modified":"2026-03-25T22:25:30","modified_gmt":"2026-03-25T22:25:30","slug":"php-8-5-4-released-upgrade-if-you-re-on-8-5","status":"publish","type":"post","link":"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/","title":{"rendered":"PHP 8.5.4 Released: Upgrade if You&#8217;re on 8.5"},"content":{"rendered":"<p>PHP 8.5.4 was released on March 12, 2026, and the practical takeaway is simple: if you&#8217;re already running PHP 8.5, update to it. If you&#8217;re still on PHP 8.4, this is not really a &#8220;drop everything and migrate&#8221; kind of release.<\/p>\n<p>This is a bug-fix release, not a feature release. The PHP team says exactly that, and the changelog reads like what you would expect from a healthy point release: crash fixes, build fixes, a handful of JIT and Opcache-related issues, some Date and DOM fixes, OpenSSL leak\/error propagation fixes, and a Windows clang compilation fix.<\/p>\n<p>For me, that is actually good news. I would rather see a point release full of boring stability work than a patch release trying to be exciting.<\/p>\n<h2>What stands out in PHP 8.5.4<\/h2>\n<p>The main things worth noticing are the crash and corruption fixes in core and runtime-adjacent areas.<\/p>\n<p>The official changelog for 8.5.4 includes fixes for:<\/p>\n<ul>\n<li><code>zend_mm_heap<\/code> corruption on Aarch64 with LTO builds<\/li>\n<li>a segfault when preloading a constant AST closure<\/li>\n<li>a crash on <code>(unset)<\/code> cast in a constant expression<\/li>\n<li>JIT-related behavior around null array key deprecations<\/li>\n<li>assertion failures around lazy objects and reflection proxies<\/li>\n<li>OpenSSL leaks and error propagation issues<\/li>\n<li>a Windows clang build fix<\/li>\n<\/ul>\n<p>That is enough for me to call this an easy maintenance upgrade if you are already on the 8.5 branch.<\/p>\n<h2>Should you upgrade?<\/h2>\n<p>My view is:<\/p>\n<ul>\n<li>On PHP 8.5 already: yes, upgrade.<\/li>\n<li>On PHP 8.4: probably stay where you are unless you already wanted PHP 8.5 for its actual new features.<\/li>\n<li>On anything older: your bigger problem is not 8.5.4 specifically, it is that you are still behind on the supported branches.<\/li>\n<\/ul>\n<p>I would not sell PHP 8.5.4 as some major turning point. The real 8.5 story is still PHP 8.5 itself, with features like the pipe operator, the URI extension, <code>clone()<\/code> updates, and other language\/runtime additions that shipped in 8.5.0.<\/p>\n<p>But that does not make 8.5.4 unimportant. Patch releases like this are where you quietly reduce the chance of weird crashes, broken builds, and runtime edge cases showing up at the worst possible time.<\/p>\n<p>So my take is simple: if you are on PHP 8.5, upgrade to 8.5.4. If you are deciding whether to move from 8.4 to 8.5, make that decision based on PHP 8.5 as a whole, not because patch version <code>.4<\/code> exists.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP 8.5.4 is a bug-fix release, not a feature release. If you are already on PHP 8.5, you should update. If you are still on 8.4, this alone is not the reason to jump.<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[28,13],"tags":[35,36,32],"class_list":["post-1152","post","type-post","status-publish","format-standard","hentry","category-php","category-programming","tag-php","tag-php-8-5","tag-release"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PHP 8.5.4 Released: Upgrade if You&#039;re on 8.5 - wade.one<\/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:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP 8.5.4 Released: Upgrade if You&#039;re on 8.5 - wade.one\" \/>\n<meta property=\"og:description\" content=\"PHP 8.5.4 is a bug-fix release, not a feature release. If you are already on PHP 8.5, you should update. If you are still on 8.4, this alone is not the reason to jump.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/\" \/>\n<meta property=\"og:site_name\" content=\"wade.one\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-25T22:25:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1518\" \/>\n\t<meta property=\"og:image:height\" content=\"1506\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:site\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/03\\\/25\\\/php-8-5-4-released-upgrade-if-you-re-on-8-5\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/03\\\/25\\\/php-8-5-4-released-upgrade-if-you-re-on-8-5\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"PHP 8.5.4 Released: Upgrade if You&#8217;re on 8.5\",\"datePublished\":\"2026-03-25T22:25:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/03\\\/25\\\/php-8-5-4-released-upgrade-if-you-re-on-8-5\\\/\"},\"wordCount\":374,\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"keywords\":[\"php\",\"php-8-5\",\"release\"],\"articleSection\":[\"PHP\",\"Programming\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/03\\\/25\\\/php-8-5-4-released-upgrade-if-you-re-on-8-5\\\/\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/03\\\/25\\\/php-8-5-4-released-upgrade-if-you-re-on-8-5\\\/\",\"name\":\"PHP 8.5.4 Released: Upgrade if You're on 8.5 - wade.one\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\"},\"datePublished\":\"2026-03-25T22:25:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/03\\\/25\\\/php-8-5-4-released-upgrade-if-you-re-on-8-5\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/03\\\/25\\\/php-8-5-4-released-upgrade-if-you-re-on-8-5\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/03\\\/25\\\/php-8-5-4-released-upgrade-if-you-re-on-8-5\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wade.one\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP 8.5.4 Released: Upgrade if You&#8217;re on 8.5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/\",\"name\":\"wade.one\",\"description\":\"wade womersley - york based software engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wade.one\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\",\"name\":\"Wade Womersley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"contentUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"width\":202,\"height\":200,\"caption\":\"Wade Womersley\"},\"logo\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP 8.5.4 Released: Upgrade if You're on 8.5 - wade.one","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:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/","og_locale":"en_GB","og_type":"article","og_title":"PHP 8.5.4 Released: Upgrade if You're on 8.5 - wade.one","og_description":"PHP 8.5.4 is a bug-fix release, not a feature release. If you are already on PHP 8.5, you should update. If you are still on 8.4, this alone is not the reason to jump.","og_url":"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/","og_site_name":"wade.one","article_published_time":"2026-03-25T22:25:30+00:00","og_image":[{"width":1518,"height":1506,"url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@wadewomersley","twitter_site":"@wadewomersley","twitter_misc":{"Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/#article","isPartOf":{"@id":"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/"},"author":{"name":"","@id":""},"headline":"PHP 8.5.4 Released: Upgrade if You&#8217;re on 8.5","datePublished":"2026-03-25T22:25:30+00:00","mainEntityOfPage":{"@id":"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/"},"wordCount":374,"publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"keywords":["php","php-8-5","release"],"articleSection":["PHP","Programming"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/","url":"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/","name":"PHP 8.5.4 Released: Upgrade if You're on 8.5 - wade.one","isPartOf":{"@id":"https:\/\/wade.one\/blog\/#website"},"datePublished":"2026-03-25T22:25:30+00:00","breadcrumb":{"@id":"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wade.one\/blog\/2026\/03\/25\/php-8-5-4-released-upgrade-if-you-re-on-8-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wade.one\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP 8.5.4 Released: Upgrade if You&#8217;re on 8.5"}]},{"@type":"WebSite","@id":"https:\/\/wade.one\/blog\/#website","url":"https:\/\/wade.one\/blog\/","name":"wade.one","description":"wade womersley - york based software engineer","publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wade.one\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3","name":"Wade Womersley","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","contentUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","width":202,"height":200,"caption":"Wade Womersley"},"logo":{"@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1301,"url":"https:\/\/wade.one\/blog\/2026\/05\/13\/php-8-5-is-a-good-upgrade-because-it-is-mostly-practical\/","url_meta":{"origin":1152,"position":0},"title":"PHP 8.5 Is a Good Upgrade Because It Is Mostly Practical","author":"","date":"May 13, 2026","format":false,"excerpt":"PHP 8.5 is not interesting because of one huge feature. It is interesting because many of the changes remove everyday friction.","rel":"","context":"In &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/wade.one\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1296,"url":"https:\/\/wade.one\/blog\/2026\/05\/08\/php-8-5s-uri-extension-fixes-a-real-web-problem\/","url_meta":{"origin":1152,"position":1},"title":"PHP 8.5&#8217;s URI Extension Fixes a Real Web Problem","author":"","date":"May 8, 2026","format":false,"excerpt":"PHP 8.5's new URI extension is not flashy, but it gives PHP a better built-in answer for parsing modern URLs.","rel":"","context":"In &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/wade.one\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1300,"url":"https:\/\/wade.one\/blog\/2026\/05\/12\/php-8-5-fatal-error-backtraces-are-an-operations-feature\/","url_meta":{"origin":1152,"position":2},"title":"PHP 8.5 Fatal Error Backtraces Are an Operations Feature","author":"","date":"May 12, 2026","format":false,"excerpt":"PHP 8.5 adding backtraces to fatal errors is a practical production debugging improvement, not just nicer developer output.","rel":"","context":"In &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/wade.one\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1328,"url":"https:\/\/wade.one\/blog\/2026\/05\/31\/php-8-5-array-first-and-array-last-remove-tiny-annoying-helpers\/","url_meta":{"origin":1152,"position":3},"title":"PHP 8.5 array_first and array_last Remove Tiny Annoying Helpers","author":"","date":"May 31, 2026","format":false,"excerpt":"PHP 8.5's array_first and array_last are small additions, but they remove helper functions most PHP codebases already reinvent.","rel":"","context":"In &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/wade.one\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1298,"url":"https:\/\/wade.one\/blog\/2026\/05\/10\/php-8-5-clone-with-makes-value-objects-less-annoying\/","url_meta":{"origin":1152,"position":4},"title":"PHP 8.5 Clone With Makes Value Objects Less Annoying","author":"","date":"May 10, 2026","format":false,"excerpt":"PHP 8.5's clone-with syntax makes immutable value objects easier to work with, especially around readonly properties.","rel":"","context":"In &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/wade.one\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1331,"url":"https:\/\/wade.one\/blog\/2026\/05\/30\/php-8-5-deprecations-are-a-good-upgrade-checklist\/","url_meta":{"origin":1152,"position":5},"title":"PHP 8.5 Deprecations Are a Good Upgrade Checklist","author":"Wade","date":"May 30, 2026","format":false,"excerpt":"PHP 8.5 deprecations are useful because they turn vague upgrade risk into a concrete cleanup list before PHP 9.","rel":"","context":"In &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/wade.one\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/comments?post=1152"}],"version-history":[{"count":1,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1152\/revisions"}],"predecessor-version":[{"id":1153,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1152\/revisions\/1153"}],"wp:attachment":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/media?parent=1152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/categories?post=1152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/tags?post=1152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}