【问题标题】:constants class in phpphp中的常量类
【发布时间】:2010-10-15 13:17:42
【问题描述】:

我曾经听说最好有一个包含所有应用程序常量的类,这样您的所有常量就只有一个位置。

我试过这样做:

class constants{
    define("EH_MAILER",1);
}

 class constants{
         const EH_MAILER =1;
 }

但两种方式都行不通。 有什么建议吗?

【问题讨论】:

  • 你从哪里听到的?我认为最好将常量与它的使用位置结合起来。另外,您的示例中的 EH 是什么?我认为这个常数值得一个更好的名字。
  • 如果你正在做一个更程序化的应用程序,我可以看到一个包含充满定义()的参数,但是,如果你正在使用 OO,请将所有常量放在一个单课没有意义。它们属于与它们(最)相关的类。

标签: php oop namespaces constants


【解决方案1】:

在当前版本的 PHP 中是这样的:

class constants
{
   const EH_MAILER = 1;
}

$mailer = constants::EH_MAILER

http://www.php.net/manual/en/language.oop5.constants.php


从 PHP 5.3 开始有更好的方法。 Namespaces.

consts.php

<?php
namespace constants
const EH_MAILER = 1

...

其他.php

<?php
include_once(consts.php)

$mailer = \constants\EH_MAILER

【讨论】:

  • 我建议这样做。
  • 这是我一直在寻找的解决方案。当然没有命名空间! Tnx
  • 那不是\constants\EH_MAILER,或者至少是constants\EH_MAILER?
  • @Adam:你是对的。关于哪个将是命名空间分隔符的讨论很多,在早期版本中它是 ::(就像在 C++ 中一样)
【解决方案2】:

你用的是什么php版本?

查看 php 的 page 了解类常量

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2020-12-20
    相关资源
    最近更新 更多