我有很多数组,我经常不得不在这样的函数内部进行全局设置
$siteSettings=/*some SQL work to make this array*/
function menuNav() {
global $siteSettings;
echo "Your site name is ".$siteSettings['name'];
}
menuNav();
我知道我需要停止像这样使用“全局”。所以我想出了这个替代解决方案,它对我来说更容易使用,但使用我知道也不是最好的 $GLOBALS 。
function siteSettings($key) {
//if the globals siteSettings array doesn't exist, make it
if (!$GLOBALS['siteSettings']) /*some SQL work to make this array*/
//return the value of this key
return $GLOBALS['siteSettings'][$key];
}
function menuNav() {
echo "Your site name is ".siteSettings('name');
}
menuNav();
你能推荐 - 并显示代码 - 在函数内部和外部使用相同数组或对象的更好方法吗?
另外......请不要建议将数组传递给这样的函数 menuNav($siteSettings)。我设置的实际函数非常复杂,并且使用了许多不同的数组,比如这个。我不想每次调用函数时都必须通过十几个不同的数组。