【发布时间】:2016-01-29 14:33:12
【问题描述】:
假设我们有以下内容:
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 是不可能的,所以我很茫然。
【问题讨论】:
-
您将遇到的一个问题是您正试图在构造函数中执行此操作 - stackoverflow.com/questions/7145198/…。
-
在类定义中包含文件也是不可能的(即把include放在类里面,但是放在函数外面)-stackoverflow.com/questions/1957732/…。
-
这就是为什么我说“我知道不可能在类定义中使用包含或要求”
-
我看到的唯一方法是不使用 const 而是使用普通的静态变量。您的包含文件可以更改为
self::SOMEVAR = 1,它应该可以工作。 -
@Scott 我以为会,但似乎没有。它抛出一个语法错误,抱怨“=”
标签: php class oop include constants