Ответ: В файле inc/common.inc.php
вам не нужно использовать ключевое слово global
, переменная уже доступна.Использование global
переопределяет переменную и, таким образом, устанавливается null
.
Объяснение:
Область переменных является ключевым здесь.Ключевое слово global
требуется только при изменении области действия.Область видимости обычных файлов (включая include()
s) одинакова, поэтому все ваши переменные доступны любому php в той же области, даже если это происходит из другого файла.
Примергде вам нужно использовать global
внутри функций.Область действия функции отличается от области обычного php, который отличается от class
scope и т. Д.
Пример:
//foo.php
$foo = "bar";
echo $foo; //prints "bar" since scope hasn't changed.
function zoo() {
echo $foo; //prints "" because of scope change.
}
function zoo2() {
global $foo;
echo $foo; //prints "bar" because $foo is recognized as in a higher scope.
}
include('bar.php');
//bar.php
echo $foo; //prints "bar" because scope still hasn't changed.
function zoo3() {
echo $foo; //prints "" for the same reason as in zoo()
}
function zoo4() {
global $foo;
echo $foo; //prints "bar" for the same reason as in zoo2()
}
Дополнительная информация:
Если вы хотите получить больше информации о том, когда использовать global
, а когда нет, обратитесь к документации php.net о переменной области действия .