Files
archived-frankenphp/testdata/request-superglobal-conditional-include.php
Xavier Leune 0e8de8f56f fix(worker): initialize $_RESUEST (#2136)
Hi,

This PR fixes #1931, it handles $_REQUEST in worker mode correctly when
`auto_globals_jit` is enabled (default configuration for PHP).
Some concerns were raised in the comments of the issue regarding
performance. This implementation should make sure that request is
created only if used.

However if a previous execution plan already used `_REQUEST`, all
subsequent requests will create it. So the concern is "kindof"
mitigated.

Let me know if you have any suggestion to improve this.

---------

Signed-off-by: Xavier Leune <xavier.leune@gmail.com>
Co-authored-by: Alexander Stecher <45872305+AlliBalliBaba@users.noreply.github.com>
2026-01-29 06:56:45 +01:00

21 lines
751 B
PHP

<?php
// This file tests if $_REQUEST is properly re-initialized in worker mode
// The key test is: does $_REQUEST contain ONLY the current request's data?
// Static counter to track how many times this file is executed (not compiled)
static $execCount = 0;
$execCount++;
echo "EXEC_COUNT:" . $execCount;
echo "\nREQUEST:";
var_export($_REQUEST);
echo "\nREQUEST_COUNT:" . count($_REQUEST);
// Check if $_REQUEST was properly initialized for this request
// If stale, it might have data from a previous request
if (isset($_GET['val'])) {
$expected_val = $_GET['val'];
$actual_val = $_REQUEST['val'] ?? 'MISSING';
echo "\nVAL_CHECK:" . ($expected_val === $actual_val ? "MATCH" : "MISMATCH(expected=$expected_val,actual=$actual_val)");
}