[PHP-WEBMASTER] [web-php] master: Add syntax highlighting for variables on PHP 8.5 release page (#1626)

[email protected] (Theodore Brown via GitHub)
Newsgroups php.webmaster
Message-ID <[email protected]>
Author: Theodore Brown (theodorejb)
Committer: GitHub (web-flow)
Pusher: saundefined
Date: 2025-11-19T21:02:05+03:00

Commit: https://github.com/php/web-php/commit/84ce0c6804b0e1ade040fe96df9b6e308ed7bb9c
Raw diff: https://github.com/php/web-php/commit/84ce0c6804b0e1ade040fe96df9b6e308ed7bb9c.diff

Add syntax highlighting for variables on PHP 8.5 release page (#1626)

Changed paths:
  M  include/layout.inc
  M  releases/8.5/release.inc
  M  styles/php85.css
  M  styles/theme-medium.css


Diff:

diff --git a/include/layout.inc b/include/layout.inc
index 17f76b8fd4..2f3f8207a6 100644
--- a/include/layout.inc
+++ b/include/layout.inc
@@ -47,6 +47,19 @@ function highlight_php_trimmed($code, $return = false)
     $highlighted_code = highlight_php($code, true);
     $highlighted_code = preg_replace("!&lt;\?php(<br />)+!", '', $highlighted_code, 1);
 
+    // add syntax highlighting for variables
+    $variableReplacer = function (array $matches) {
+        if ($matches[1] !== '') {
+            $replacement = '<span class="default">' . $matches[1] . '</span>';
+        } else {
+            $replacement = '';
+        }
+        return $replacement . '<span class="variable">' . $matches[2] . '</span>';
+    };
+
+    $pattern = '!<span class="default">([\w\s]*)(\$[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*\s*)</span>!';
+    $highlighted_code = preg_replace_callback($pattern, $variableReplacer, $highlighted_code);
+
     if ($return) { return $highlighted_code; }
     echo $highlighted_code;
     return null;
diff --git a/releases/8.5/release.inc b/releases/8.5/release.inc
index ee33e7769c..79578488da 100644
--- a/releases/8.5/release.inc
+++ b/releases/8.5/release.inc
@@ -509,7 +509,7 @@ final class PostsController
     )]
     public function update(
         Request $request,
-        Post $post
+        Post $post,
     ): Response {
         // ...
     }
@@ -545,7 +545,7 @@ final class PostsController
     })]
     public function update(
         Request $request,
-        Post $post
+        Post $post,
     ): Response {
         // ...
     }
diff --git a/styles/php85.css b/styles/php85.css
index d8523e91aa..4ac3708350 100644
--- a/styles/php85.css
+++ b/styles/php85.css
@@ -3564,6 +3564,11 @@ footer p:where(.dark,.dark *) {
     background-color: transparent;
 }
 
+.php85 .phpcode span.variable {
+    color: #7d55ba;
+    background-color: transparent;
+}
+
 .php85 .phpcode span.keyword {
     color: #07a;
     background-color: transparent;
@@ -3585,13 +3590,18 @@ footer p:where(.dark,.dark *) {
     background-color: transparent;
 }
 
+.dark .php85 .phpcode span.variable {
+    color: #a5d6ff;
+    background-color: transparent;
+}
+
 .dark .php85 .phpcode span.keyword {
     color: #ff7b72;
     background-color: transparent;
 }
 
 .dark .php85 .phpcode span.string {
-    color: #a5d6ff;
+    color: #80b83c;
     background-color: transparent;
 }
 
diff --git a/styles/theme-medium.css b/styles/theme-medium.css
index d171ea4c45..1f1b9d142f 100644
--- a/styles/theme-medium.css
+++ b/styles/theme-medium.css
@@ -832,7 +832,7 @@ div.warning a:focus {
   color: var(--dark-blue-color);
   background-color: transparent;
 }
-div.phpcode span.default {
+div.phpcode span.default, div.phpcode span.variable {
   color: #369;
   background-color: transparent;
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.