У меня есть фрагмент кода, подобный следующему:
---- file.php ----
require_once("mylib.php");
function($a,$b)
{
$r = $_GLOBALS['someGlobal'];
echo $r;
}
---- mylib.php ----
$_GLOBALS['someGlobal'] = "Random String";
Это немного тривиально, но это именно та проблема, которая у меня есть, я не нашел ничего похожего, но ничего, что отвечало бы на мой вопрос напрямую.
Когда я звоню function($a,$b)
, ничего не повторяется, то есть - $r
"пусто", как будто ничего не было назначено на $_GLOBALS['someGlobal']
;
Кроме того, я пробовал со следующим:
global $someGlobal;
$someGlobal = "Random String";
То же самое, без эффекта.
Кроме того, в file.php
, если я пытаюсь использовать global
или просто $someGlobal
, он все равно не работает.
Насколько я знаю, из документации на php.net, использующей глобальный $someGlobal
в mylib.php (и вставив его в верхний уровень file.php), он на самом деле ничего не сделает, так как он уже на насколько я могу судить, «верхний уровень» иерархии области видимости. Тем не менее, я подумал, что регистрация его как глобального может позволить доступ к нему изнутри функции, но это явно не так.
Кто-нибудь может объяснить почему и объяснить, как это обойти?
Редактировать: Мне не следует, чтобы в file.php, если я использую $_GLOBALS['someGlobal'];
, значение восстанавливалось нормально, если его нет в функции.