在PHP中,我希望能够设置一个变量值"superglobally" - 这是一个我定义的值,可以在服务器的第一行代码上运行的每个脚本都可以访问(即不需要require_once()任何东西或者这样的事情).
目前我通过在我的系统上设置名为varname的环境变量来使用$ _ENV ['varname'].但它需要重新启动才能对Windows系统上的变量值进行更改,这并不好.
有没有其他解决方案缺乏修改PHP源?
如果您使用的是Apache,可以查看一下 mod_env
它允许您SetEnv在Apache的配置中使用该指令(如果配置了Apache服务器,则可以在.htaccess文件中使用这些指令),如下所示:
在我的Apache文件中:
<VirtualHost *>
ServerName tests
DocumentRoot /home/squale/developpement/tests
....
SetEnv MY_TEST_VARIABLE "Hello, World!"
....
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
(需要考虑Apache重启)
或者在.htaccess文件中:
SetEnv MY_OTHER_TEST_VARIABLE "This is looking nice !"
Run Code Online (Sandbox Code Playgroud)
(立即考虑到)
然后,这些变量可用于$_SERVER:
var_dump($_SERVER);
Run Code Online (Sandbox Code Playgroud)
给我 :
array
'MY_TEST_VARIABLE' => string 'Hello, World!' (length=13)
'MY_OTHER_TEST_VARIABLE' => string 'This is looking nice !' (length=22)
'HTTP_HOST' => string 'tests' (length=5)
'HTTP_USER_AGENT' => string 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090716 Ubuntu/9.04 (jaunty) Shiretoko/3.5.1' (length=105)
'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' (length=63)
'HTTP_ACCEPT_LANGUAGE' => string 'en-us,en;q=0.5' (length=14)
....
....
Run Code Online (Sandbox Code Playgroud)
这$_ENV不像你要求的......但差不多;-)
而且这个想法真的是一样的^^
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |