Commit 6a4d0d9456b for php.net
commit 6a4d0d9456bf872286722ad5f043ad4928e92c9a
Author: ndossche <niels.dossche@ugent.be>
Date: Tue Jan 20 15:45:53 2026 +0100
Do nesting for internal execute hook
diff --git a/ext/zend_test/observer.c b/ext/zend_test/observer.c
index 9c6bf6b674c..348996b7ac1 100644
--- a/ext/zend_test/observer.c
+++ b/ext/zend_test/observer.c
@@ -298,12 +298,16 @@ static void zend_test_execute_internal(zend_execute_data *execute_data, zval *re
}
}
+ ZT_G(observer_nesting_depth)++;
+
if (zend_test_prev_execute_internal) {
zend_test_prev_execute_internal(execute_data, return_value);
} else {
fbc->internal_function.handler(execute_data, return_value);
}
+ ZT_G(observer_nesting_depth)--;
+
if (fbc->common.function_name) {
if (EG(exception)) {
php_printf("%*s<!-- Exception: %s -->\n", 2 * ZT_G(observer_nesting_depth), "", ZSTR_VAL(EG(exception)->ce->name));
diff --git a/ext/zend_test/tests/execute_internal.phpt b/ext/zend_test/tests/execute_internal.phpt
index 3983e6f2b8d..6c7fc757759 100644
--- a/ext/zend_test/tests/execute_internal.phpt
+++ b/ext/zend_test/tests/execute_internal.phpt
@@ -14,6 +14,8 @@ function f($a) {
f(time() > 0 ? [1, 2, 3] : []);
+array_map("count", [[], [1, 2]]);
+
?>
--EXPECTF--
<!-- internal enter time() -->
@@ -23,3 +25,13 @@ function f($a) {
<!-- internal enter var_dump() -->
int(6)
<!-- internal leave var_dump():NULL -->
+<!-- internal enter array_map() -->
+ <!-- internal enter count() -->
+ <!-- internal leave count():0 -->
+ <!-- internal enter count() -->
+ <!-- internal leave count():2 -->
+<!-- internal leave array_map():
+ array (
+ 0 => 0,
+ 1 => 2,
+ ) -->