【问题标题】:Defining your own magic constants in php?在 php 中定义自己的魔法常量?
【发布时间】:2013-12-17 08:15:23
【问题描述】:

php中有没有,我们可以通过它定义我们自己的魔术常量,该值在整个程序中可能会有所不同,以及如何使用SUPER GLOBAL SCOPE定义变量。

【问题讨论】:

  • 不,不可能。

标签: php scope constants magic-string


【解决方案1】:

只需将变量添加为 Apache 环境变量:

SetEnv foo bar

您可以在httpd.confapache2.conf.htaccess 中设置它。然后PHP 应该能够通过以下一种或多种方法访问它:

$_SERVER['foo']
$_ENV['foo']
getenv('foo')

【讨论】:

    【解决方案2】:

    虽然您可以声明全局变量,但超全局变量仅限于 PHP 中的变量。您可能希望将您的数据保留为 $_SESSION['mysuperglobal'],但我建议您使用更详细的模式,例如配置单例、注册表或依赖注入。

    【讨论】:

      【解决方案3】:

      你不能定义魔术常量而不构建自己的 PHP 风格。但是您可以通过将所有“魔术”define()s 放在单独的文件中并将其包含在您可以使用 auto_prepend_file 配置指令的每个脚本中来模仿这一点。不过,如果你认为你需要这样的东西,我会尝试重新考虑这种方法。每当“神奇”或“全局”的东西开始发挥作用时,它都表明需要重构。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多