I'm working within Smarty 2.6.27. There is something that prevents PHP functions from accessing global variables:
{php}
$a = "should be global";
function test(){
global $a;
echo $a;
}
test();
{/php}
But the variable $a
never makes it into the function. I've also done this:
{php}
$a = "should be global";
foreach ($GLOBALS as $key => $value) {
echo $key . "-" . $value;
}
{/php}
But again, $a
does not make it into the list of PHP globals. It seems that this is because Smarty runs PHP in some odd context--for example, the documentation mentions this:
To access PHP variables in {php} blocks you will need to use the PHP global keyword.
I don't really need to get access to other PHP globals, and I don't particularly want the scope of variables created here to go wider, I simply need to figure out how to use variables defined outside of the functions in the function. There will be a lot of these variables, so passing them as parameters is impractical.