Commit f0ed2c5890c for php.net

commit f0ed2c5890cc0c955c7a4ef99ba77ecd69584459
Author: Weilin Du <weilindu@php.net>
Date:   Tue Sep 15 15:50:38 2026 +0800

    ext/standard: Avoid redundant hash checks in getopt()

    Repeated option values accumulate in private arrays that are only appended
    to. New option keys are inserted after a failed lookup. Use known-new
    insertion helpers for both cases.

diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 3438d603752..1e00661cac2 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -1078,9 +1078,9 @@ PHP_FUNCTION(getopt)
 				if (Z_TYPE_P(args) != IS_ARRAY) {
 					convert_to_array(args);
 				}
-				zend_hash_next_index_insert(Z_ARRVAL_P(args), &val);
+				zend_hash_next_index_insert_new(Z_ARRVAL_P(args), &val);
 			} else {
-				zend_hash_index_update(Z_ARRVAL_P(return_value), opt_name_as_long, &val);
+				zend_hash_index_add_new(Z_ARRVAL_P(return_value), opt_name_as_long, &val);
 			}
 		} else {
 			/* other strings */
@@ -1088,9 +1088,9 @@ PHP_FUNCTION(getopt)
 				if (Z_TYPE_P(args) != IS_ARRAY) {
 					convert_to_array(args);
 				}
-				zend_hash_next_index_insert(Z_ARRVAL_P(args), &val);
+				zend_hash_next_index_insert_new(Z_ARRVAL_P(args), &val);
 			} else {
-				zend_hash_str_add(Z_ARRVAL_P(return_value), optname, optname_len, &val);
+				zend_hash_str_add_new(Z_ARRVAL_P(return_value), optname, optname_len, &val);
 			}
 		}