【发布时间】:2013-12-17 08:15:23
【问题描述】:
php中有没有,我们可以通过它定义我们自己的魔术常量,该值在整个程序中可能会有所不同,以及如何使用SUPER GLOBAL SCOPE定义变量。
【问题讨论】:
-
不,不可能。
标签: php scope constants magic-string
php中有没有,我们可以通过它定义我们自己的魔术常量,该值在整个程序中可能会有所不同,以及如何使用SUPER GLOBAL SCOPE定义变量。
【问题讨论】:
标签: php scope constants magic-string
只需将变量添加为 Apache 环境变量:
SetEnv foo bar
您可以在httpd.conf、apache2.conf 或.htaccess 中设置它。然后PHP 应该能够通过以下一种或多种方法访问它:
$_SERVER['foo']
$_ENV['foo']
getenv('foo')
【讨论】:
虽然您可以声明全局变量,但超全局变量仅限于 PHP 中的变量。您可能希望将您的数据保留为 $_SESSION['mysuperglobal'],但我建议您使用更详细的模式,例如配置单例、注册表或依赖注入。
【讨论】:
你不能定义魔术常量而不构建自己的 PHP 风格。但是您可以通过将所有“魔术”define()s 放在单独的文件中并将其包含在您可以使用 auto_prepend_file 配置指令的每个脚本中来模仿这一点。不过,如果你认为你需要这样的东西,我会尝试重新考虑这种方法。每当“神奇”或“全局”的东西开始发挥作用时,它都表明需要重构。
【讨论】: