Commit 8e9ea8596be for php
commit 8e9ea8596be4c1619063b625cf9109cb33556a81
Author: Gina Peter Banyard <girgias@php.net>
Date: Tue Sep 29 16:13:26 2026 +0100
std: add trampoline tests for array_find based user functions
diff --git a/ext/standard/tests/array/find/array_all_trampoline.phpt b/ext/standard/tests/array/find/array_all_trampoline.phpt
new file mode 100644
index 00000000000..89d25b26097
--- /dev/null
+++ b/ext/standard/tests/array/find/array_all_trampoline.phpt
@@ -0,0 +1,27 @@
+--TEST--
+array_all(): with trampoline
+--FILE--
+<?php
+$array = [
+ "a" => 1,
+ "b" => 2,
+ "c" => 3,
+ "d" => 4,
+ "e" => 5,
+];
+
+class TrampolineTest {
+ public function __call(string $name, array $arguments): string {
+ echo 'Trampoline for ', $name, PHP_EOL;
+ return $arguments[0] % 2 === 0;
+ }
+}
+$o = new TrampolineTest();
+$callback = [$o, 'trampoline'];
+
+var_dump(array_all($array, $callback));
+
+?>
+--EXPECT--
+Trampoline for trampoline
+bool(false)
diff --git a/ext/standard/tests/array/find/array_any_trampoline.phpt b/ext/standard/tests/array/find/array_any_trampoline.phpt
new file mode 100644
index 00000000000..4a06ffd88d2
--- /dev/null
+++ b/ext/standard/tests/array/find/array_any_trampoline.phpt
@@ -0,0 +1,28 @@
+--TEST--
+array_any(): with trampoline
+--FILE--
+<?php
+$array = [
+ "a" => 1,
+ "b" => 2,
+ "c" => 3,
+ "d" => 4,
+ "e" => 5,
+];
+
+class TrampolineTest {
+ public function __call(string $name, array $arguments): string {
+ echo 'Trampoline for ', $name, PHP_EOL;
+ return $arguments[0] % 2 === 0;
+ }
+}
+$o = new TrampolineTest();
+$callback = [$o, 'trampoline'];
+
+var_dump(array_any($array, $callback));
+
+?>
+--EXPECT--
+Trampoline for trampoline
+Trampoline for trampoline
+bool(true)
diff --git a/ext/standard/tests/array/find/array_find_key_trampoline.phpt b/ext/standard/tests/array/find/array_find_key_trampoline.phpt
new file mode 100644
index 00000000000..0152d9506cb
--- /dev/null
+++ b/ext/standard/tests/array/find/array_find_key_trampoline.phpt
@@ -0,0 +1,28 @@
+--TEST--
+array_find_key(): with trampoline
+--FILE--
+<?php
+$array = [
+ "a" => 1,
+ "b" => 2,
+ "c" => 3,
+ "d" => 4,
+ "e" => 5,
+];
+
+class TrampolineTest {
+ public function __call(string $name, array $arguments): string {
+ echo 'Trampoline for ', $name, PHP_EOL;
+ return $arguments[0] % 2 === 0;
+ }
+}
+$o = new TrampolineTest();
+$callback = [$o, 'trampoline'];
+
+var_dump(array_find_key($array, $callback));
+
+?>
+--EXPECT--
+Trampoline for trampoline
+Trampoline for trampoline
+string(1) "b"
diff --git a/ext/standard/tests/array/find/array_find_trampoline.phpt b/ext/standard/tests/array/find/array_find_trampoline.phpt
new file mode 100644
index 00000000000..2c0e10ac39f
--- /dev/null
+++ b/ext/standard/tests/array/find/array_find_trampoline.phpt
@@ -0,0 +1,28 @@
+--TEST--
+array_find(): with trampoline
+--FILE--
+<?php
+$array = [
+ "a" => 1,
+ "b" => 2,
+ "c" => 3,
+ "d" => 4,
+ "e" => 5,
+];
+
+class TrampolineTest {
+ public function __call(string $name, array $arguments): string {
+ echo 'Trampoline for ', $name, PHP_EOL;
+ return $arguments[0] % 2 === 0;
+ }
+}
+$o = new TrampolineTest();
+$callback = [$o, 'trampoline'];
+
+var_dump(array_find($array, $callback));
+
+?>
+--EXPECT--
+Trampoline for trampoline
+Trampoline for trampoline
+int(2)