Commit d650f5a68b0 for php

commit d650f5a68b0a9b258bd713d67c5fb3ce63c04912
Author: Weilin Du <weilindu@php.net>
Date:   Mon Sep 28 00:20:56 2026 +0800

    ext/standard: Allow compile-time evaluation of more standard string functions (#23913)

    Add it for str_increment() and str_decrement()
    as they perform deterministic ASCII string operations

diff --git a/ext/opcache/tests/opt/ct_eval_standard_functions.phpt b/ext/opcache/tests/opt/ct_eval_standard_functions.phpt
new file mode 100644
index 00000000000..f4abd93db52
--- /dev/null
+++ b/ext/opcache/tests/opt/ct_eval_standard_functions.phpt
@@ -0,0 +1,43 @@
+--TEST--
+Compile-time evaluation of str_increment() and str_decrement()
+--EXTENSIONS--
+opcache
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+opcache.opt_debug_level=0x20000
+zend_test.observer.enabled=0
+--FILE--
+<?php
+function test() {
+    return [
+        str_increment('Z9'),
+        str_decrement('AA0'),
+    ];
+}
+var_dump(test());
+?>
+--EXPECTF--
+$_main:
+     ; (lines=6, args=0, vars=0, tmps=1)
+     ; (after optimizer)
+     ; %sct_eval_standard_functions.php:1-10
+0000 INIT_FCALL 1 %d string("var_dump")
+0001 INIT_FCALL 0 %d string("test")
+0002 T0 = DO_UCALL
+0003 SEND_VAL T0 1
+0004 DO_ICALL
+0005 RETURN int(1)
+
+test:
+     ; (lines=1, args=0, vars=0, tmps=0)
+     ; (after optimizer)
+     ; %sct_eval_standard_functions.php:2-7
+0000 RETURN array(...)
+array(2) {
+  [0]=>
+  string(3) "AA0"
+  [1]=>
+  string(2) "Z9"
+}
diff --git a/ext/standard/basic_functions.stub.php b/ext/standard/basic_functions.stub.php
index 4b455ec331b..8d4d8bd9e8b 100644
--- a/ext/standard/basic_functions.stub.php
+++ b/ext/standard/basic_functions.stub.php
@@ -2388,8 +2388,10 @@ function strtoupper(string $string): string {}
  */
 function strtolower(string $string): string {}

+/** @compile-time-eval */
 function str_increment(string $string): string {}

+/** @compile-time-eval */
 function str_decrement(string $string): string {}

 /** @refcount 1 */
diff --git a/ext/standard/basic_functions_arginfo.h b/ext/standard/basic_functions_arginfo.h
index b770a1e8684..b0eb39090e0 100644
Binary files a/ext/standard/basic_functions_arginfo.h and b/ext/standard/basic_functions_arginfo.h differ
diff --git a/ext/standard/basic_functions_decl.h b/ext/standard/basic_functions_decl.h
index aab4e4b5f09..7ed3c749a28 100644
Binary files a/ext/standard/basic_functions_decl.h and b/ext/standard/basic_functions_decl.h differ