Сначала попробуйте использовать константы пути Joomla, такие как JPATH_BASE вместо $_SERVER['DOCUMENT_ROOT']
. У Joomla есть много полезных констант, проверьте их документацию.
Я прочитал ваш ответ и, прочитав php документацию, попытался найти причину, по которой вам нужно дважды использовать ключевое слово global
.
Сначала Область действия переменной .
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 - странное поведение.
Но потом я прочитал включая и обнаружил кое-что интересное:
(...)
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 в качестве атрибута.