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