Сначала попробуйте использовать константы пути Joomla, такие как JPATH_BASE вместо $_SERVER['DOCUMENT_ROOT']
. У Joomla много полезных констант, проверьте его документацию.
Я прочитал ваш ответ и прочитал документацию по php. Я попытался найти причину, по которой вам нужно использовать ключевое слово global
дважды.
Во-первых, Variable scope.
The scope of a variable is the context within which it is defined. For the most
part all PHP variables only have a single scope.
(...)
However, within user-defined functions a local function scope is introduced.
Any variable used inside a function is by default limited to the local
function scope.
переменная не в области видимости функции, именно поэтому мы думали, что NULL было странное поведение.
Но потом я прочитал include и нашел что-то интересное:
(...)
Any variables available at that line in the calling file will be available
within the called file, from that point forward. However, all **functions**
and **classes** defined in the included file have the global scope.
Я не могу увидеть ни одного упоминания о переменных, являющихся глобальным в этом пункте. Таким образом, кажется, что, будучи громоздким или нет, ваше решение - это то, что нужно делать, когда вы хотите использовать глобальные переменные.
В вашей ситуации, если это громоздко, я бы создал простой класс. Если у вас есть только вспомогательные функции в вашем файле, создайте class Util{}
с множеством методов и $ testVar в качестве атрибута.
ли начать 'function.php' файл с' php'? (просто чтобы убедиться) –
Только переменные приходят как NULL? Как насчет функций? – GmonC
Образец создает строку 'hello world '(length = 11)' при тестировании с помощью PHP 5.2.11. Он работает для вас, если используется вне модуля Joomla? – outis