php - 如何在类中包含定义常量的文件(及其范围)

标签 php class oop include constants

假设我们有以下内容:

some.class.php

class
{
    public __construct()
    {
        fun_stuff();
    }

}

configuration.inc

const SOMECONST = 1;
const SOMEOTHERCONST = 2;

我想做这样的事情:

some.class.php

class
{
    public __construct()
    {
        include_once(configuration.inc);
        fun_stuff();
    }

}

现在可以了,但是常量不是在类的范围内定义的(echo some::SOMECONST;)而是在全局范围内定义的(echo SOMECONST;)

真的想把常量放在另一个文件中,因为这对我来说很有意义。有没有办法在类的范围内声明常量?我知道不可能在类定义中使用 includesrequires 所以我很茫然。

最佳答案

最简单的方法是在一个类中定义常量,然后让其他类扩展该类。

class myClassConstant {
  const SOMECONST = 1;
  const SOMEOTHERCONST = 2;
}

class myClass extends myClassConstant {

  public function __construct() {
    echo self::SOMECONST . ' + ' . self::SOMEOTHERCONST . ' = 3';
  }
}

$obj = new myClass(); // Output: 1 + 2 = 3

如果您使用的是 php 自动加载器,则可以轻松地将其拆分为两个不同的文件。

关于php - 如何在类中包含定义常量的文件(及其范围),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35087017/

相关文章:

c++ - std::for_each 似乎正在清理 std::string

javascript - 分页效果不好

php - 用于签署推送通知 token 的 Apple 签名 key 的 x、y 和曲线参数是什么?

java - php base64_encode hash_hmac 和 java 给出了不同的结果

php - 此页面包含以下错误 : error on line 1 at column 1: Document is empty

c++ - C++ 中有没有一种方法可以在没有构造函数的情况下预初始化结构或类?

java - 多个子类,如何实例化其中的任何一个?

delphi - 如何循环类中的所有属性

c# - 实例化泛型?

oop - 在模型中表示具有数百个问题的表单的最佳方式是什么