我正在尝试使用一个函数来根据我给它的变量声明全局变量。 失败的部分是使变量全局化
function setGlobalVariable($name) {
global $name, $arrayname_{$name};
}
任何想法? 谢谢:))
答案 0 :(得分:6)
真的,不要那样乱搞全局变量。
无论如何,如果您真的想这样做,这是您的解决方案:
function setGlobalVariable($name) {
$GLOBALS['arrayname_' . $name] = 'yourvalue';
}
答案 1 :(得分:3)
你不应该这样做。全局变量通常是设计不佳的标志。你想要达到的目标是什么?我相信有更好的解决方案。除此之外,global
不起作用。 global
使您的函数之外的其他变量在本地可用。使用$_GLOBAL
创建全局变量。
答案 2 :(得分:1)
查看注册表模式(http://martinfowler.com/eaaCatalog/registry.html)。
其他对象的着名对象 可以用来找到共同的对象和 服务。
有各种PHP实现,例如Zend_Registry:http://framework.zend.com/manual/en/zend.registry.html
答案 3 :(得分:0)
你几乎是对的,但并不完全;变量变量采用${"name"}
的形式,因此您需要的是global ${"arrayname_$name"};
。