【问题标题】:PHP general constantsPHP 通用常量
【发布时间】:2011-05-13 02:33:48
【问题描述】:

我知道想要更新或删除一个常量,如果它的意思是完全相反的,但这是我的问题。

我希望能够以与常量相同的方式格式化一个值。即:回声富;

它可以是纯文本,而不是像$foo 这样的变量。

这似乎是一件很愚蠢的事情,但我希望能利用它。但是,如果这不可能,我想就是这样。

PS。我'会'只是将它定义为一个常量,但是我希望它能够更新(比如在 foreach 期间重新定义它)。

【问题讨论】:

    标签: php constants


    【解决方案1】:

    有点。第一个必须不区分大小写:

    define("myConstant", "blah", true);
    print myConstant; // blah
    define("myConstant", "xxxx"); // No warning outputted
    print myConstant; // xxxx
    

    但是,不要这样做!常数的全部意义在于它是常数。尽管您似乎意识到了这一点,但与更清晰的代码风格相比,额外的 $ 符号有什么问题?

    【讨论】:

    • 我希望让最终用户易于理解代码的可用性。通常我会访问我的类之一,例如 bar ?> 但最好只定义它,并允许它更新,因为它会在 foreach 或 while 中。
    • 那么,真正的目的是什么?为什么需要更改常量?
    • 如果您不介意,我还有一个问题:您知道是否有一种方法可以预定义一段 php 代码吗?像定义'echo“test”'或其他代码块?
    • 我知道的唯一方法是使用函数,这可能不是您的想法。
    • @Earl。如果你只是把 echo "test";在一个文件中,你可以在任何地方包含它。
    【解决方案2】:

    根据http://www.php.net/manual/en/function.define.php#92327,如有必要,您可以即时重新定义常量。

    define("FIRST_CONSTANT", 'my 1st value', true);
    echo FIRST_CONSTANT;
    // my 1st value
    
    define('FIRST_CONSTANT', 'my 2nd value');
    echo FIRST_CONSTANT;
    // my 2nd value
    

    【讨论】:

      【解决方案3】:

      你可以像这样使用函数的名称:

      <?php 
      function hello(){ return "bla"; }
      $a = hello;
      $b = $a();
      echo $b;
      ?>
      

      【讨论】:

      • 我很确定这会让他走向与他想要的相反的方向。
      猜你喜欢
      • 2014-08-13
      • 1970-01-01
      • 2011-06-13
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      相关资源
      最近更新 更多