Вы можете вручную «подделать» эффект глобальных регистров, но добавить некоторую безопасность. (Я частично взял это из форка osCommerce под названием xoops)
// Detect bad global variables
$bad_global_list = array('GLOBALS', '_SESSION', 'HTTP_SESSION_VARS', '_GET', 'HTTP_GET_VARS', '_POST', 'HTTP_POST_VARS', '_COOKIE', 'HTTP_COOKIE_VARS', '_REQUEST', '_SERVER', 'HTTP_SERVER_VARS', '_ENV', 'HTTP_ENV_VARS', '_FILES', 'HTTP_POST_FILES');
foreach ($bad_global_list as $bad_global ) {
if ( isset( $_REQUEST[$bad_global] ) ) {
die('Bad Global');
}
}
// Make global variables
foreach ($_REQUEST as $name -> $value) {
$$name = $value; // Creates a varable nammed $name equal to $value.
}
Несмотря на то, что вы хотите настроить его, чтобы сделать ваш код более безопасным, по крайней мере, добавив глобальные переменные конфигурации (например, путь и базовый URL) в список неверных глобальных переменных.
Вы также можете использовать его, чтобы легко составить список всех используемых переменных get / post, чтобы помочь вам в конечном итоге заменить все вхождения, скажем, $ return_url, на $ _REQUEST ['return_url];