【问题标题】:How to define large amounts of variables correctly in PHP?如何在 PHP 中正确定义大量变量?
【发布时间】:2011-06-03 00:11:48
【问题描述】:

我有大约 30 个变量硬编码到一个 php 脚本中,我需要将它们全部删除并将它们放到自己的位置。我想知道,应该将它们定义为常量、全局变量,将它们放入一个类中,将它们放入一个单独的文件中,或者其他的东西。

另外,我很好奇如何定义一个常量数组。

那么,你认为正确的方法是什么?

【问题讨论】:

    标签: php variables constants globals


    【解决方案1】:

    这完全取决于它们是什么,它们代表什么以及它们的含义。你的问题太模糊了。

    你不能定义一个常量数组,或者一个常量是一个数组。

    【讨论】:

    • 您可以定义配置变量数组。比如 $conf['variable_name'] 等等...
    • @ircmaxell:可能是这样,尽管我确实在常量数组中回答了部分问题。
    • 你可以循环一个 key => value 数组映射,但是用 value 定义一个名为 key 的常量。
    • @TomR:我不明白。常量在哪里与数组一起发挥作用?键将是一个变量,而不是一个常量。
    【解决方案2】:

    这取决于这些变量代表什么,它们将在哪里使用,以及它们将如何使用。这些变量都相关吗?

    至于定义一个常量数组...一种方法就是创建an array。这个数组实际上不会是“常量”,尽管值可以被覆盖。

    $constArr = array(
        "companyAddress" => "123 Fake St" , 
        "companyCity" => "Queens" , 
        "companyState" => "NY" , 
        "companyActive" => true
    );
    

    那么你可以像这样访问你的“常量”......

    echo $constArr["companyAddress"];
    

    【讨论】:

      【解决方案3】:

      如果你想要做的是“定义一个常量数组”,我会这样做。

      $constantsToDefine = array(
        'PORT' => 80,
        'NUMBER_OF_LEGS' => 10
      );
      foreach ($constantsToDefine as $key => $value) {
        define(strtoupper($key), $value);
      }
      

      【讨论】:

        【解决方案4】:

        在我们编写的几个较大的应用程序中,我们将所有“常量”变量放入一个“包含”文件中,然后使用define 函数定义它们。然后,我们只需将该文件包含在所有其他页面中。

        例如,我们的包含文件如下所示:

        define(CONSTANT_ONE, 1);
        define(CONSTANT_TWO, TRUE);
        

        然后,我们将require_once('includes.php'); 放在其他脚本的顶部。

        显然,将它们全部放在一个文件中的好处是集中控制。

        【讨论】:

          【解决方案5】:

          常量不是一个坏主意,因为它不会被覆盖

          或者你可以考虑parse_ini_file

          【讨论】:

          • 如果你使用 parse_ini_file,不要忘记对结果使用缓存机制(如 Zend_Cache_Frontend_File)。在每次请求时解析文件并不是设置常量的最快方法。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-26
          • 1970-01-01
          相关资源
          最近更新 更多