PHP - 从变量到常量的值

时间:2012-07-09 14:18:50

标签: php oop variables constants

我正在学习PHP中的OOP,我希望将值从变量赋值给类常量。我怎么能这样做?

这是我的代码(不工作!):<​​/ p>

class Dir {

const ROOT = $_SERVER['DOCUMENT_ROOT']."project/";

function __construct() {

}
}

是否有任何解决方案,如何从变量获取值,添加字符串并将其置于常量 - 在OOP中?

4 个答案:

答案 0 :(得分:6)

在手册页http://www.php.net/manual/en/language.oop5.constants.php中,您可以找到:

The value must be a constant expression, not (for example) a variable, a property, a result of a mathematical operation, or a function call. 

答案 1 :(得分:2)

常量不能有变量。

我建议您不要依赖$_SERVER['DOCUMENT_ROOT'],而是可以定义自己的ROOT

例如,您在文档根目录中有一个config.php,您可以

define('ROOT', __DIR__.'/'); // php version >= 5.3
define('ROOT', dirname(__FILE__).'/'); // php version < 5.3

然后使用ROOT代替。

答案 2 :(得分:0)

为什么不在__construct()中设置它。从技术上讲,这就是它的用途。

class Dir {

    public function __construct() {
        self::ROOT = $_SERVER['DOCUMENT_ROOT']."project/";
    }
}

答案 3 :(得分:0)

我建议你使用这个解决方案,因为你想使用OOP,所有都必须在课堂内。因为const或静态var直接使用是不可能的,我会使用静态函数:

class Dir
{
    public static function getRoot()
    {
        return $_SERVER['DOCUMENT_ROOT'] . 'project/';
    }
}

你可以像

一样使用它
Dir::getRoot();