假设我们有以下内容:
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;
)
我真的想把常量放在另一个文件中,因为这对我来说很有意义。有没有办法在类的范围内声明常量?我知道不可能在类定义中使用 includes
或 requires
所以我很茫然。
最佳答案
最简单的方法是在一个类中定义常量,然后让其他类扩展该类。
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/