我想设置一些全局变量来存储一些东西。我试过这样做:
function init_web()
{
$webname = "myweb";
$web['webname'] = $webname;
$web['server_root'] = $_SERVER['DOCUMENT_ROOT']."/$webname/";
$web['lang']="en";
}问题是我不能在函数中访问这些变量。我试过使用global $web;,但没有用。
让它全球化的诀窍是什么?
谢谢
发布于 2011-03-29 00:44:26
虽然你会得到通常的“全局变量不好”的叫喊,但这里是基本的:
$web = array(); // define the var at the "top level" of the code tree, outside any functions/classes.
function init_web() {
global $web; // make it visible in the function
$web['lang'] = 'en'; // make some settings
}基本上,您已经拥有了它,但是还没有在函数外部定义变量。只是在函数中说'global‘并不会在函数外神奇地创建一个--在你试图将它“内部化”到函数并更改/访问它的内容之前,它已经存在了。
发布于 2011-03-29 00:45:21
你在正确的轨道上:
$web = array();
function init_web()
{
global $web;
$webname = "myweb";
$web['webname'] = $webname;
$web['server_root'] = $_SERVER['DOCUMENT_ROOT']."/$webname/";
$web['lang']="en";
}发布于 2011-03-29 00:44:34
您可以将它们定义为常量
define('WEBNAME',"myweb");并且可以在应用程序中的任何地方使用,因为默认情况下常量是全局的。
这是一种将常量存储为常量的方法,因为在迁移到新服务器或更改配置之前,它们不会动态更改。
https://stackoverflow.com/questions/5462229
复制相似问题